diff --git "a/web-build/static/js/23.aed00c51.js.map" "b/web-build/static/js/23.aed00c51.js.map" new file mode 100644--- /dev/null +++ "b/web-build/static/js/23.aed00c51.js.map" @@ -0,0 +1 @@ +{"version":3,"file":"static/js/23.aed00c51.js","mappings":"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,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINN,IAAK,CACHn0B,IAAK,EACLy0B,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE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","sources":["node_modules/@react-native-community/slider/dist/RNCSliderNativeComponent.web.js","node_modules/@react-native-community/slider/dist/Slider.js","node_modules/@react-native-community/slider/dist/index.js","node_modules/@react-native/assets-registry/registry.js","node_modules/expo-asset/src/AssetSourceResolver.ts","node_modules/expo-asset/src/PlatformUtils.web.ts","node_modules/expo-asset/src/AssetSources.ts","node_modules/expo-asset/src/AssetUris.ts","node_modules/expo-asset/src/resolveAssetSource.ts","node_modules/expo-asset/src/Asset.ts","node_modules/expo-asset/src/LocalAssets.web.ts","node_modules/expo-asset/src/ImageAssets.ts","node_modules/expo-av/src/AV.ts","node_modules/expo-av/src/AV.types.ts","node_modules/expo-av/src/Audio.types.ts","node_modules/expo-av/src/Audio/Recording.ts","node_modules/expo-av/src/Audio.ts","node_modules/expo-av/src/Audio/AudioAvailability.ts","node_modules/expo-av/src/Audio/RecordingConstants.ts","node_modules/expo-av/src/Audio/Sound.ts","node_modules/expo-modules-core/src/uuid/lib/sha1.ts","node_modules/expo-modules-core/src/uuid/lib/bytesToUuid.ts","node_modules/expo-modules-core/src/uuid/uuid.types.ts","node_modules/expo-modules-core/src/uuid/lib/v35.ts","node_modules/expo-modules-core/src/uuid/uuid.web.ts","node_modules/expo-modules-core/src/index.ts","node_modules/expo-av/src/ExponentAV.web.ts","node_modules/expo-font/src/Font.types.ts","node_modules/expo-font/src/ExpoFontLoader.web.ts","node_modules/expo-font/src/FontLoader.web.ts","node_modules/expo-font/src/memory.ts","node_modules/expo-font/src/server.ts","node_modules/expo-font/src/Font.ts","node_modules/expo-font/src/FontHooks.ts","node_modules/expo-image-picker/src/ExponentImagePicker.web.ts","node_modules/expo-image-picker/src/ImagePicker.ts","node_modules/expo-image-picker/src/ImagePicker.types.ts","node_modules/expo-modules-core/src/EventEmitter.ts","node_modules/expo-modules-core/src/PermissionsHook.ts","node_modules/expo-modules-core/src/PermissionsInterface.ts","node_modules/expo-modules-core/src/environment/browser.web.ts","node_modules/expo-modules-core/src/Platform.ts","node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","node_modules/@babel/runtime/helpers/esm/construct.js","node_modules/expo-modules-core/src/errors/CodedError.ts","node_modules/expo-modules-core/src/errors/UnavailabilityError.ts","node_modules/expo-status-bar/src/StatusBar.web.ts","node_modules/react-native-element-dropdown/src/toolkits/index.ts","node_modules/react-native-element-dropdown/src/useDeviceOrientation.ts","node_modules/react-native-element-dropdown/src/components/TextInput/styles.ts","node_modules/react-native-element-dropdown/src/components/TextInput/index.tsx","node_modules/react-native-element-dropdown/src/components/Dropdown/styles.ts","node_modules/react-native-element-dropdown/src/components/Dropdown/index.tsx","node_modules/react-native-element-dropdown/src/components/MultiSelect/styles.ts","node_modules/react-native-element-dropdown/src/components/MultiSelect/index.tsx","node_modules/react-native-element-dropdown/src/components/SelectCountry/styles.ts","node_modules/react-native-element-dropdown/src/components/SelectCountry/index.tsx","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.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/Animated/useAnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/useRefEffect.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/useMergeRefs.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/nodes/AnimatedValueXY.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedColor.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/DeviceEventEmitter/index.js","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.esm.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/react-native-web/dist/exports/I18nManager/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-native-web/dist/exports/InteractionManager/TaskQueue.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/exports/Keyboard/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/exports/NativeEventEmitter/index.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/react-native-web/dist/modules/addEventListener/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","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","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","node_modules/react-native-web/dist/exports/StatusBar/index.js","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/unitlessNumbers.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hash.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hyphenateStyleName.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/compiler/index.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/react-native-web/dist/exports/StyleSheet/preprocess.js","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/exports/Switch/index.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-web/dist/modules/unitlessNumbers/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/react-native-web/dist/exports/View/index.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/Clipboard/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/Linking/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","node_modules/react-native-web/dist/exports/Share/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/ImageBackground/index.js","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/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/SafeAreaView/index.js","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/modules/UnimplementedView/index.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/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/useColorScheme/index.js","node_modules/react-native-web/dist/exports/useLocaleContext/index.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","node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/react-native-web/dist/modules/canUseDom/index.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","node_modules/react-native-web/dist/modules/useLocale/isLocaleRTL.js","node_modules/react-native-web/dist/modules/useLocale/index.js","node_modules/react-native-web/dist/modules/useMergeRefs/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.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/ResponderTouchHistoryStore.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/useStable/index.js","node_modules/react-native-web/dist/modules/warnOnce/index.js","node_modules/react-native-web/dist/vendor/react-native/EventEmitter/NativeEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/clamp.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/CellRenderMask.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/ChildListCollection.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/StateSafePureComponent.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/react-native-web/dist/vendor/react-native/vendor/emitter/EventEmitter.js","node_modules/react-native-web/node_modules/@react-native/normalize-colors/index.js","node_modules/asn1.js/lib/asn1.js","node_modules/asn1.js/lib/asn1/api.js","node_modules/asn1.js/lib/asn1/base/buffer.js","node_modules/asn1.js/lib/asn1/base/index.js","node_modules/asn1.js/lib/asn1/base/node.js","node_modules/asn1.js/lib/asn1/base/reporter.js","node_modules/asn1.js/lib/asn1/constants/der.js","node_modules/asn1.js/lib/asn1/constants/index.js","node_modules/asn1.js/lib/asn1/decoders/der.js","node_modules/asn1.js/lib/asn1/decoders/index.js","node_modules/asn1.js/lib/asn1/decoders/pem.js","node_modules/asn1.js/lib/asn1/encoders/der.js","node_modules/asn1.js/lib/asn1/encoders/index.js","node_modules/asn1.js/lib/asn1/encoders/pem.js","node_modules/base64-js/index.js","node_modules/bn.js/lib/bn.js","node_modules/brorand/index.js","node_modules/browserify-aes/aes.js","node_modules/browserify-aes/authCipher.js","node_modules/browserify-aes/browser.js","node_modules/browserify-aes/decrypter.js","node_modules/browserify-aes/encrypter.js","node_modules/browserify-aes/ghash.js","node_modules/browserify-aes/incr32.js","node_modules/browserify-aes/modes/cbc.js","node_modules/browserify-aes/modes/cfb.js","node_modules/browserify-aes/modes/cfb1.js","node_modules/browserify-aes/modes/cfb8.js","node_modules/browserify-aes/modes/ctr.js","node_modules/browserify-aes/modes/ecb.js","node_modules/browserify-aes/modes/index.js","node_modules/browserify-aes/modes/ofb.js","node_modules/browserify-aes/streamCipher.js","node_modules/browserify-cipher/browser.js","node_modules/browserify-des/index.js","node_modules/browserify-des/modes.js","node_modules/browserify-rsa/index.js","node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","node_modules/browserify-sign/algos.js","node_modules/browserify-sign/browser/index.js","node_modules/browserify-sign/browser/sign.js","node_modules/browserify-sign/browser/verify.js","node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js","node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js","node_modules/buffer-xor/index.js","node_modules/buffer/index.js","node_modules/cipher-base/index.js","node_modules/core-util-is/lib/util.js","node_modules/create-ecdh/browser.js","node_modules/create-hash/browser.js","node_modules/create-hash/md5.js","node_modules/create-hmac/browser.js","node_modules/create-hmac/legacy.js","node_modules/crypto-browserify/index.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/css-in-js-utils/lib/hyphenateProperty.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/des.js/lib/des.js","node_modules/des.js/lib/des/cbc.js","node_modules/des.js/lib/des/cipher.js","node_modules/des.js/lib/des/des.js","node_modules/des.js/lib/des/ede.js","node_modules/des.js/lib/des/utils.js","node_modules/diffie-hellman/browser.js","node_modules/diffie-hellman/lib/dh.js","node_modules/diffie-hellman/lib/generatePrime.js","node_modules/elliptic/lib/elliptic.js","node_modules/elliptic/lib/elliptic/curve/base.js","node_modules/elliptic/lib/elliptic/curve/edwards.js","node_modules/elliptic/lib/elliptic/curve/index.js","node_modules/elliptic/lib/elliptic/curve/mont.js","node_modules/elliptic/lib/elliptic/curve/short.js","node_modules/elliptic/lib/elliptic/curves.js","node_modules/elliptic/lib/elliptic/ec/index.js","node_modules/elliptic/lib/elliptic/ec/key.js","node_modules/elliptic/lib/elliptic/ec/signature.js","node_modules/elliptic/lib/elliptic/eddsa/index.js","node_modules/elliptic/lib/elliptic/eddsa/key.js","node_modules/elliptic/lib/elliptic/eddsa/signature.js","node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","node_modules/elliptic/lib/elliptic/utils.js","node_modules/events/events.js","node_modules/evp_bytestokey/index.js","node_modules/fbjs/lib/emptyFunction.js","node_modules/fbjs/lib/invariant.js","node_modules/fbjs/lib/warning.js","node_modules/fontfaceobserver/fontfaceobserver.standalone.js","node_modules/hash.js/lib/hash.js","node_modules/hash.js/lib/hash/common.js","node_modules/hash.js/lib/hash/hmac.js","node_modules/hash.js/lib/hash/ripemd.js","node_modules/hash.js/lib/hash/sha.js","node_modules/hash.js/lib/hash/sha/1.js","node_modules/hash.js/lib/hash/sha/224.js","node_modules/hash.js/lib/hash/sha/256.js","node_modules/hash.js/lib/hash/sha/384.js","node_modules/hash.js/lib/hash/sha/512.js","node_modules/hash.js/lib/hash/sha/common.js","node_modules/hash.js/lib/hash/utils.js","node_modules/hmac-drbg/lib/hmac-drbg.js","node_modules/hyphenate-style-name/index.js","node_modules/ieee754/index.js","node_modules/inherits/inherits_browser.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/inline-style-prefixer/lib/utils/addNewValuesOnly.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/inline-style-prefixer/lib/utils/isObject.js","node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","node_modules/inline-style-prefixer/lib/utils/prefixValue.js","node_modules/invariant/browser.js","node_modules/isarray/index.js","node_modules/lodash/_DataView.js","node_modules/lodash/_Hash.js","node_modules/lodash/_ListCache.js","node_modules/lodash/_Map.js","node_modules/lodash/_MapCache.js","node_modules/lodash/_Promise.js","node_modules/lodash/_Set.js","node_modules/lodash/_SetCache.js","node_modules/lodash/_Stack.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_Uint8Array.js","node_modules/lodash/_WeakMap.js","node_modules/lodash/_apply.js","node_modules/lodash/_arrayFilter.js","node_modules/lodash/_arrayIncludes.js","node_modules/lodash/_arrayIncludesWith.js","node_modules/lodash/_arrayLikeKeys.js","node_modules/lodash/_arrayMap.js","node_modules/lodash/_arrayPush.js","node_modules/lodash/_arraySome.js","node_modules/lodash/_assignValue.js","node_modules/lodash/_assocIndexOf.js","node_modules/lodash/_baseAssignValue.js","node_modules/lodash/_baseDifference.js","node_modules/lodash/_baseFindIndex.js","node_modules/lodash/_baseFlatten.js","node_modules/lodash/_baseGet.js","node_modules/lodash/_baseGetAllKeys.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/_baseHasIn.js","node_modules/lodash/_baseIndexOf.js","node_modules/lodash/_baseIsArguments.js","node_modules/lodash/_baseIsEqual.js","node_modules/lodash/_baseIsEqualDeep.js","node_modules/lodash/_baseIsMatch.js","node_modules/lodash/_baseIsNaN.js","node_modules/lodash/_baseIsNative.js","node_modules/lodash/_baseIsTypedArray.js","node_modules/lodash/_baseIteratee.js","node_modules/lodash/_baseKeys.js","node_modules/lodash/_baseMatches.js","node_modules/lodash/_baseMatchesProperty.js","node_modules/lodash/_baseProperty.js","node_modules/lodash/_basePropertyDeep.js","node_modules/lodash/_baseRest.js","node_modules/lodash/_baseSetToString.js","node_modules/lodash/_baseTimes.js","node_modules/lodash/_baseToString.js","node_modules/lodash/_baseTrim.js","node_modules/lodash/_baseUnary.js","node_modules/lodash/_cacheHas.js","node_modules/lodash/_castPath.js","node_modules/lodash/_copyObject.js","node_modules/lodash/_coreJsData.js","node_modules/lodash/_createAssigner.js","node_modules/lodash/_defineProperty.js","node_modules/lodash/_equalArrays.js","node_modules/lodash/_equalByTag.js","node_modules/lodash/_equalObjects.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/_getAllKeys.js","node_modules/lodash/_getMapData.js","node_modules/lodash/_getMatchData.js","node_modules/lodash/_getNative.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_getSymbols.js","node_modules/lodash/_getTag.js","node_modules/lodash/_getValue.js","node_modules/lodash/_hasPath.js","node_modules/lodash/_hashClear.js","node_modules/lodash/_hashDelete.js","node_modules/lodash/_hashGet.js","node_modules/lodash/_hashHas.js","node_modules/lodash/_hashSet.js","node_modules/lodash/_isFlattenable.js","node_modules/lodash/_isIndex.js","node_modules/lodash/_isIterateeCall.js","node_modules/lodash/_isKey.js","node_modules/lodash/_isKeyable.js","node_modules/lodash/_isMasked.js","node_modules/lodash/_isPrototype.js","node_modules/lodash/_isStrictComparable.js","node_modules/lodash/_listCacheClear.js","node_modules/lodash/_listCacheDelete.js","node_modules/lodash/_listCacheGet.js","node_modules/lodash/_listCacheHas.js","node_modules/lodash/_listCacheSet.js","node_modules/lodash/_mapCacheClear.js","node_modules/lodash/_mapCacheDelete.js","node_modules/lodash/_mapCacheGet.js","node_modules/lodash/_mapCacheHas.js","node_modules/lodash/_mapCacheSet.js","node_modules/lodash/_mapToArray.js","node_modules/lodash/_matchesStrictComparable.js","node_modules/lodash/_memoizeCapped.js","node_modules/lodash/_nativeCreate.js","node_modules/lodash/_nativeKeys.js","node_modules/lodash/_nodeUtil.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_overArg.js","node_modules/lodash/_overRest.js","node_modules/lodash/_root.js","node_modules/lodash/_setCacheAdd.js","node_modules/lodash/_setCacheHas.js","node_modules/lodash/_setToArray.js","node_modules/lodash/_setToString.js","node_modules/lodash/_shortOut.js","node_modules/lodash/_stackClear.js","node_modules/lodash/_stackDelete.js","node_modules/lodash/_stackGet.js","node_modules/lodash/_stackHas.js","node_modules/lodash/_stackSet.js","node_modules/lodash/_strictIndexOf.js","node_modules/lodash/_stringToPath.js","node_modules/lodash/_toKey.js","node_modules/lodash/_toSource.js","node_modules/lodash/_trimmedEndIndex.js","node_modules/lodash/assign.js","node_modules/lodash/constant.js","node_modules/lodash/differenceWith.js","node_modules/lodash/eq.js","node_modules/lodash/findIndex.js","node_modules/lodash/get.js","node_modules/lodash/hasIn.js","node_modules/lodash/identity.js","node_modules/lodash/isArguments.js","node_modules/lodash/isArray.js","node_modules/lodash/isArrayLike.js","node_modules/lodash/isArrayLikeObject.js","node_modules/lodash/isBuffer.js","node_modules/lodash/isEqual.js","node_modules/lodash/isFunction.js","node_modules/lodash/isLength.js","node_modules/lodash/isObject.js","node_modules/lodash/isObjectLike.js","node_modules/lodash/isSymbol.js","node_modules/lodash/isTypedArray.js","node_modules/lodash/keys.js","node_modules/lodash/last.js","node_modules/lodash/memoize.js","node_modules/lodash/property.js","node_modules/lodash/stubArray.js","node_modules/lodash/stubFalse.js","node_modules/lodash/toFinite.js","node_modules/lodash/toInteger.js","node_modules/lodash/toNumber.js","node_modules/lodash/toString.js","node_modules/md5.js/index.js","node_modules/md5.js/node_modules/hash-base/index.js","node_modules/miller-rabin/lib/mr.js","node_modules/minimalistic-assert/index.js","node_modules/minimalistic-crypto-utils/lib/utils.js","node_modules/nullthrows/nullthrows.js","node_modules/parse-asn1/asn1.js","node_modules/parse-asn1/certificate.js","node_modules/parse-asn1/fixProc.js","node_modules/parse-asn1/index.js","node_modules/pbkdf2/browser.js","node_modules/pbkdf2/lib/async.js","node_modules/pbkdf2/lib/default-encoding.js","node_modules/pbkdf2/lib/precondition.js","node_modules/pbkdf2/lib/sync-browser.js","node_modules/pbkdf2/lib/to-buffer.js","node_modules/process-nextick-args/index.js","node_modules/public-encrypt/browser.js","node_modules/public-encrypt/mgf.js","node_modules/public-encrypt/privateDecrypt.js","node_modules/public-encrypt/publicEncrypt.js","node_modules/public-encrypt/withPublic.js","node_modules/public-encrypt/xor.js","node_modules/randombytes/browser.js","node_modules/randomfill/browser.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/react-dom/client.js","node_modules/react-dom/index.js","node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/react-dom/node_modules/scheduler/index.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/react/cjs/react.production.min.js","node_modules/react/index.js","node_modules/react/jsx-runtime.js","node_modules/readable-stream/errors-browser.js","node_modules/readable-stream/lib/_stream_duplex.js","node_modules/readable-stream/lib/_stream_passthrough.js","node_modules/readable-stream/lib/_stream_readable.js","node_modules/readable-stream/lib/_stream_transform.js","node_modules/readable-stream/lib/_stream_writable.js","node_modules/readable-stream/lib/internal/streams/async_iterator.js","node_modules/readable-stream/lib/internal/streams/buffer_list.js","node_modules/readable-stream/lib/internal/streams/destroy.js","node_modules/readable-stream/lib/internal/streams/end-of-stream.js","node_modules/readable-stream/lib/internal/streams/from-browser.js","node_modules/readable-stream/lib/internal/streams/pipeline.js","node_modules/readable-stream/lib/internal/streams/state.js","node_modules/readable-stream/lib/internal/streams/stream-browser.js","node_modules/readable-stream/readable-browser.js","node_modules/ripemd160/index.js","node_modules/ripemd160/node_modules/hash-base/index.js","node_modules/safe-buffer/index.js","node_modules/sha.js/hash.js","node_modules/sha.js/index.js","node_modules/sha.js/sha.js","node_modules/sha.js/sha1.js","node_modules/sha.js/sha224.js","node_modules/sha.js/sha256.js","node_modules/sha.js/sha384.js","node_modules/sha.js/sha512.js","node_modules/stream-browserify/index.js","node_modules/string_decoder/lib/string_decoder.js","node_modules/styleq/dist/styleq.js","node_modules/styleq/dist/transform-localize-style.js","node_modules/util-deprecate/browser.js","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/extends.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/extends.js","node_modules/@babel/runtime/helpers/esm/get.js","node_modules/@babel/runtime/helpers/esm/superPropBase.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/objectSpread2.js","node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/slicedToArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _slicedToArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _reactDom=_interopRequireDefault(require(\"react-dom\"));var _react=_interopRequireWildcard(require(\"react\"));var _reactNative=require(\"react-native\");var _excluded=[\"value\",\"minimumValue\",\"maximumValue\",\"step\",\"minimumTrackTintColor\",\"maximumTrackTintColor\",\"thumbTintColor\",\"thumbStyle\",\"style\",\"inverted\",\"disabled\",\"trackHeight\",\"thumbSize\",\"thumbImage\",\"onRNCSliderSlidingStart\",\"onRNCSliderSlidingComplete\",\"onRNCSliderValueChange\"];var _this=this,_jsxFileName=\"C:\\\\Dev\\\\Projects\\\\react-native-slider\\\\package\\\\src\\\\RNCSliderNativeComponent.web.tsx\";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;}var valueToEvent=function valueToEvent(value){return{nativeEvent:{value:value}};};var RCTSliderWebComponent=_react.default.forwardRef(function(_ref,forwardedRef){var initialValue=_ref.value,_ref$minimumValue=_ref.minimumValue,minimumValue=_ref$minimumValue===void 0?0:_ref$minimumValue,_ref$maximumValue=_ref.maximumValue,maximumValue=_ref$maximumValue===void 0?0:_ref$maximumValue,_ref$step=_ref.step,step=_ref$step===void 0?1:_ref$step,_ref$minimumTrackTint=_ref.minimumTrackTintColor,minimumTrackTintColor=_ref$minimumTrackTint===void 0?'#009688':_ref$minimumTrackTint,_ref$maximumTrackTint=_ref.maximumTrackTintColor,maximumTrackTintColor=_ref$maximumTrackTint===void 0?'#939393':_ref$maximumTrackTint,_ref$thumbTintColor=_ref.thumbTintColor,thumbTintColor=_ref$thumbTintColor===void 0?'#009688':_ref$thumbTintColor,_ref$thumbStyle=_ref.thumbStyle,thumbStyle=_ref$thumbStyle===void 0?{}:_ref$thumbStyle,_ref$style=_ref.style,style=_ref$style===void 0?{}:_ref$style,_ref$inverted=_ref.inverted,inverted=_ref$inverted===void 0?false:_ref$inverted,_ref$disabled=_ref.disabled,disabled=_ref$disabled===void 0?false:_ref$disabled,_ref$trackHeight=_ref.trackHeight,trackHeight=_ref$trackHeight===void 0?4:_ref$trackHeight,_ref$thumbSize=_ref.thumbSize,thumbSize=_ref$thumbSize===void 0?20:_ref$thumbSize,thumbImage=_ref.thumbImage,_ref$onRNCSliderSlidi=_ref.onRNCSliderSlidingStart,onRNCSliderSlidingStart=_ref$onRNCSliderSlidi===void 0?function(_){}:_ref$onRNCSliderSlidi,_ref$onRNCSliderSlidi2=_ref.onRNCSliderSlidingComplete,onRNCSliderSlidingComplete=_ref$onRNCSliderSlidi2===void 0?function(_){}:_ref$onRNCSliderSlidi2,_ref$onRNCSliderValue=_ref.onRNCSliderValueChange,onRNCSliderValueChange=_ref$onRNCSliderValue===void 0?function(_){}:_ref$onRNCSliderValue,others=(0,_objectWithoutProperties2.default)(_ref,_excluded);var containerSize=_react.default.useRef({width:0,height:0});var containerPositionX=_react.default.useRef(0);var containerRef=forwardedRef||_react.default.createRef();var containerPositionInvalidated=_react.default.useRef(false);var _React$useState=_react.default.useState(initialValue||minimumValue),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var lastInitialValue=_react.default.useRef();var animationValues=_react.default.useRef({val:new _reactNative.Animated.Value(value),min:new _reactNative.Animated.Value(minimumValue),max:new _reactNative.Animated.Value(maximumValue),diff:new _reactNative.Animated.Value(maximumValue-minimumValue||1)}).current;_react.default.useEffect(function(){animationValues.min.setValue(minimumValue);animationValues.max.setValue(maximumValue);animationValues.diff.setValue(maximumValue-minimumValue||1);},[animationValues,minimumValue,maximumValue]);var minPercent=_react.default.useRef(_reactNative.Animated.multiply(new _reactNative.Animated.Value(100),_reactNative.Animated.divide(_reactNative.Animated.subtract(animationValues.val,animationValues.min),animationValues.diff))).current;var maxPercent=_react.default.useRef(_reactNative.Animated.subtract(new _reactNative.Animated.Value(100),minPercent)).current;var onValueChange=(0,_react.useCallback)(function(value){onRNCSliderValueChange&&onRNCSliderValueChange(valueToEvent(value));},[onRNCSliderValueChange]);var onSlidingStart=(0,_react.useCallback)(function(value){onRNCSliderSlidingStart&&onRNCSliderSlidingStart(valueToEvent(value));},[onRNCSliderSlidingStart]);var onSlidingComplete=(0,_react.useCallback)(function(value){onRNCSliderSlidingComplete&&onRNCSliderSlidingComplete(valueToEvent(value));},[onRNCSliderSlidingComplete]);var _updateValue=(0,_react.useCallback)(function(newValue){var hardRounded=decimalPrecision.current<20?Number.parseFloat(newValue.toFixed(decimalPrecision.current)):newValue;var withinBounds=Math.max(minimumValue,Math.min(hardRounded,maximumValue));if(value!==withinBounds){setValue(withinBounds);onValueChange(withinBounds);return withinBounds;}return hardRounded;},[minimumValue,maximumValue,value,onValueChange]);_react.default.useLayoutEffect(function(){if(initialValue!==lastInitialValue.current){lastInitialValue.current=initialValue;var newValue=_updateValue(initialValue);animationValues.val.setValue(newValue);}},[initialValue,_updateValue,animationValues]);_react.default.useEffect(function(){var invalidateContainerPosition=function invalidateContainerPosition(){containerPositionInvalidated.current=true;};var onDocumentScroll=function onDocumentScroll(e){var isAlreadyInvalidated=!containerPositionInvalidated.current;if(isAlreadyInvalidated&&containerRef.current&&e.target.contains(containerRef.current)){invalidateContainerPosition();}};window.addEventListener('resize',invalidateContainerPosition);document.addEventListener('scroll',onDocumentScroll,{capture:true});return function(){window.removeEventListener('resize',invalidateContainerPosition);document.removeEventListener('scroll',onDocumentScroll,{capture:true});};},[containerRef]);var containerStyle=_reactNative.StyleSheet.compose({flexGrow:1,flexShrink:1,flexBasis:'auto',flexDirection:'row',alignItems:'center'},style);var trackStyle={height:trackHeight,borderRadius:trackHeight/2,userSelect:'none'};var minimumTrackStyle=Object.assign({},trackStyle,{backgroundColor:minimumTrackTintColor,flexGrow:minPercent});var maximumTrackStyle=Object.assign({},trackStyle,{backgroundColor:maximumTrackTintColor,flexGrow:maxPercent});var thumbViewStyle=_reactNative.StyleSheet.compose({width:thumbSize,height:thumbSize,backgroundColor:thumbTintColor,zIndex:1,borderRadius:thumbSize/2,overflow:'hidden'},thumbStyle);var decimalPrecision=_react.default.useRef(calculatePrecision(minimumValue,maximumValue,step));_react.default.useEffect(function(){decimalPrecision.current=calculatePrecision(minimumValue,maximumValue,step);},[maximumValue,minimumValue,step]);var updateContainerPositionX=function updateContainerPositionX(){var _ReactDOM$findDOMNode;var positionX=(_ReactDOM$findDOMNode=_reactDom.default.findDOMNode(containerRef.current).getBoundingClientRect())==null?void 0:_ReactDOM$findDOMNode.x;containerPositionX.current=positionX!=null?positionX:0;};var getValueFromNativeEvent=function getValueFromNativeEvent(pageX){var _containerSize$curren=containerSize.current.width,width=_containerSize$curren===void 0?1:_containerSize$curren;if(containerPositionInvalidated.current){containerPositionInvalidated.current=false;updateContainerPositionX();}var containerX=containerPositionX.current;if(pageXcontainerX+width){return inverted?minimumValue:maximumValue;}else{var x=pageX-containerX;var newValue=inverted?maximumValue-(maximumValue-minimumValue)*x/width:minimumValue+(maximumValue-minimumValue)*x/width;return step?Math.round(newValue/step)*step:newValue;}};var onTouchEnd=function onTouchEnd(_ref2){var nativeEvent=_ref2.nativeEvent;var newValue=_updateValue(getValueFromNativeEvent(nativeEvent.pageX));animationValues.val.setValue(newValue);onSlidingComplete(newValue);};var onMove=function onMove(_ref3){var nativeEvent=_ref3.nativeEvent;var newValue=getValueFromNativeEvent(nativeEvent.pageX);animationValues.val.setValue(newValue);_updateValue(newValue);};var accessibilityActions=function accessibilityActions(event){var tenth=(maximumValue-minimumValue)/10;switch(event.nativeEvent.actionName){case'increment':_updateValue(value+(step||tenth));break;case'decrement':_updateValue(value-(step||tenth));break;}};_react.default.useImperativeHandle(forwardedRef,function(){return{updateValue:function updateValue(val){_updateValue(val);}};},[_updateValue]);return _react.default.createElement(_reactNative.View,(0,_extends2.default)({ref:containerRef,onLayout:function onLayout(_ref4){var layout=_ref4.nativeEvent.layout;containerSize.current.height=layout.height;containerSize.current.width=layout.width;if(containerRef.current){updateContainerPositionX();}},accessibilityActions:[{name:'increment',label:'increment'},{name:'decrement',label:'decrement'}],onAccessibilityAction:accessibilityActions,accessible:true,accessibilityRole:'adjustable',style:containerStyle},others,{onStartShouldSetResponder:function onStartShouldSetResponder(){return!disabled;},onMoveShouldSetResponder:function onMoveShouldSetResponder(){return!disabled;},onResponderGrant:function onResponderGrant(){return onSlidingStart(value);},onResponderRelease:onTouchEnd,onResponderMove:onMove,__self:_this,__source:{fileName:_jsxFileName,lineNumber:318,columnNumber:7}}),_react.default.createElement(_reactNative.Animated.View,{pointerEvents:\"none\",style:minimumTrackStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:343,columnNumber:9}}),_react.default.createElement(_reactNative.View,{pointerEvents:\"none\",style:thumbViewStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:344,columnNumber:9}},thumbImage!==undefined?_react.default.createElement(_reactNative.Image,{source:thumbImage,style:{width:'100%',height:'100%'},__self:_this,__source:{fileName:_jsxFileName,lineNumber:346,columnNumber:13}}):null),_react.default.createElement(_reactNative.Animated.View,{pointerEvents:\"none\",style:maximumTrackStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:352,columnNumber:9}}));});function calculatePrecision(minimumValue,maximumValue,step){if(!step){return Infinity;}else{var decimals=[minimumValue,maximumValue,step].map(function(value){return((value+'').split('.').pop()||'').length;});return Math.max.apply(Math,(0,_toConsumableArray2.default)(decimals));}}RCTSliderWebComponent.displayName='RTCSliderWebComponent';var _default=RCTSliderWebComponent;exports.default=_default;","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _react=_interopRequireDefault(require(\"react\"));var _reactNative=require(\"react-native\");var _index=_interopRequireDefault(require(\"./index\"));var _excluded=[\"onValueChange\",\"onSlidingStart\",\"onSlidingComplete\",\"onAccessibilityAction\"];var _this=this,_jsxFileName=\"C:\\\\Dev\\\\Projects\\\\react-native-slider\\\\package\\\\src\\\\Slider.tsx\";var LIMIT_MIN_VALUE=Number.MIN_SAFE_INTEGER;var LIMIT_MAX_VALUE=Number.MAX_SAFE_INTEGER;var SliderComponent=function SliderComponent(props,forwardedRef){var _props$accessibilityS;var style=_reactNative.StyleSheet.compose(props.style,styles.slider);var onValueChange=props.onValueChange,onSlidingStart=props.onSlidingStart,onSlidingComplete=props.onSlidingComplete,onAccessibilityAction=props.onAccessibilityAction,localProps=(0,_objectWithoutProperties2.default)(props,_excluded);var onValueChangeEvent=onValueChange?function(event){onValueChange(event.nativeEvent.value);}:null;var _disabled=typeof props.disabled==='boolean'?props.disabled:((_props$accessibilityS=props.accessibilityState)==null?void 0:_props$accessibilityS.disabled)===true;var _accessibilityState=typeof props.disabled==='boolean'?Object.assign({},props.accessibilityState,{disabled:props.disabled}):props.accessibilityState;var onSlidingStartEvent=onSlidingStart?function(event){onSlidingStart(event.nativeEvent.value);}:null;var onSlidingCompleteEvent=onSlidingComplete?function(event){onSlidingComplete(event.nativeEvent.value);}:null;var onAccessibilityActionEvent=onAccessibilityAction?function(event){onAccessibilityAction(event);}:null;var lowerLimit=!!localProps.lowerLimit||localProps.lowerLimit===0?localProps.lowerLimit:LIMIT_MIN_VALUE;var upperLimit=!!localProps.upperLimit||localProps.upperLimit===0?localProps.upperLimit:LIMIT_MAX_VALUE;return _react.default.createElement(_index.default,(0,_extends2.default)({},localProps,{lowerLimit:lowerLimit,upperLimit:upperLimit,accessibilityState:_accessibilityState,thumbImage:_reactNative.Platform.OS==='web'?props.thumbImage:props.thumbImage?_reactNative.Image.resolveAssetSource(props.thumbImage):undefined,ref:forwardedRef,style:style,onChange:onValueChangeEvent,onRNCSliderSlidingStart:onSlidingStartEvent,onRNCSliderSlidingComplete:onSlidingCompleteEvent,onRNCSliderValueChange:onValueChangeEvent,disabled:_disabled,onStartShouldSetResponder:function onStartShouldSetResponder(){return true;},onResponderTerminationRequest:function onResponderTerminationRequest(){return false;},onRNCSliderAccessibilityAction:onAccessibilityActionEvent,__self:_this,__source:{fileName:_jsxFileName,lineNumber:248,columnNumber:5}}));};var SliderWithRef=_react.default.forwardRef(SliderComponent);SliderWithRef.defaultProps={value:0,minimumValue:0,maximumValue:1,step:0,inverted:false,tapToSeek:false,lowerLimit:LIMIT_MIN_VALUE,upperLimit:LIMIT_MAX_VALUE};var styles=_reactNative.StyleSheet.create(_reactNative.Platform.OS==='ios'?{slider:{height:40}}:{slider:{}});var _default=SliderWithRef;exports.default=_default;","Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var RNCSlider=require('./RNCSliderNativeComponent').default;var _default=RNCSlider;exports.default=_default;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\n","import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio } from 'react-native';\n\nexport type ResolvedAssetSource = {\n __packager_asset: boolean;\n width?: number;\n height?: number;\n uri: string;\n scale: number;\n};\n\n// Returns the Metro dev server-specific asset location.\nfunction getScaledAssetPath(asset): string {\n const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const type = !asset.type ? '' : `.${asset.type}`;\n if (__DEV__) {\n return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n } else {\n return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n }\n}\n\nexport default class AssetSourceResolver {\n serverUrl: string;\n // where the jsbundle is being run from\n // NOTE(EvanBacon): Never defined on web.\n jsbundleUrl?: string | null;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(\n serverUrl: string | undefined | null,\n jsbundleUrl: string | undefined | null,\n asset: PackagerAsset\n ) {\n this.serverUrl = serverUrl || 'https://expo.dev';\n this.jsbundleUrl = null;\n this.asset = asset;\n }\n\n // Always true for web runtimes\n isLoadedFromServer(): boolean {\n return true;\n }\n\n // Always false for web runtimes\n isLoadedFromFileSystem(): boolean {\n return false;\n }\n\n defaultAsset(): ResolvedAssetSource {\n return this.assetServerURL();\n }\n\n /**\n * @returns absolute remote URL for the hosted asset.\n */\n assetServerURL(): ResolvedAssetSource {\n const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n fromUrl.searchParams.set('platform', Platform.OS);\n fromUrl.searchParams.set('hash', this.asset.hash);\n return this.fromSource(\n // Relative on web\n fromUrl.toString().replace(fromUrl.origin, '')\n );\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width ?? undefined,\n height: this.asset.height ?? undefined,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale(scales: number[], deviceScale: number): number {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}\n","export const IS_MANAGED_ENV = false;\nexport const IS_ENV_WITH_UPDATES_ENABLED = false;\nexport const IS_ENV_WITHOUT_UPDATES_ENABLED = false;\n\n// Compute manifest base URL if available\nexport const manifestBaseUrl = null;\n\nexport async function downloadAsync(uri, hash, type, name): Promise {\n return uri;\n}\n\nexport function getManifest() {\n return {};\n}\n\nexport function getManifest2() {\n return {};\n}\n","import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio, NativeModules } from 'react-native';\n\nimport AssetSourceResolver from './AssetSourceResolver';\nimport { getManifest, getManifest2, manifestBaseUrl } from './PlatformUtils';\n\n// @docsMissing\nexport type AssetMetadata = Pick<\n PackagerAsset,\n 'httpServerLocation' | 'name' | 'hash' | 'type' | 'scales' | 'width' | 'height'\n> & {\n uri?: string;\n fileHashes?: string[];\n fileUris?: string[];\n};\n\nexport type AssetSource = {\n uri: string;\n hash: string;\n};\n\n// Fast lookup check if asset map has any overrides in the manifest.\n// This value will always be either null or an absolute URL, e.g. `https://expo.dev/`\nconst assetMapOverride = getManifest().assetMapOverride;\n\n/**\n * Selects the best file for the given asset (ex: choosing the best scale for images) and returns\n * a { uri, hash } pair for the specific asset file.\n *\n * If the asset isn't an image with multiple scales, the first file is selected.\n */\nexport function selectAssetSource(meta: AssetMetadata): AssetSource {\n // Override with the asset map in manifest if available\n if (assetMapOverride && assetMapOverride.hasOwnProperty(meta.hash)) {\n meta = { ...meta, ...assetMapOverride[meta.hash] };\n }\n\n // This logic is based on that of AssetSourceResolver, with additional support for file hashes and\n // explicitly provided URIs\n const scale = AssetSourceResolver.pickScale(meta.scales, PixelRatio.get());\n const index = meta.scales.findIndex((s) => s === scale);\n const hash = meta.fileHashes ? meta.fileHashes[index] ?? meta.fileHashes[0] : meta.hash;\n\n // Allow asset processors to directly provide the URL to load\n const uri = meta.fileUris ? meta.fileUris[index] ?? meta.fileUris[0] : meta.uri;\n if (uri) {\n return { uri: resolveUri(uri), hash };\n }\n\n // Check if the assetUrl was overridden in the manifest\n const assetUrlOverride = getManifest().assetUrlOverride;\n if (assetUrlOverride) {\n const uri = pathJoin(assetUrlOverride, hash);\n return { uri: resolveUri(uri), hash };\n }\n\n const fileScale = scale === 1 ? '' : `@${scale}x`;\n const fileExtension = meta.type ? `.${encodeURIComponent(meta.type)}` : '';\n const suffix = `/${encodeURIComponent(meta.name)}${fileScale}${fileExtension}`;\n const params = new URLSearchParams({\n platform: Platform.OS,\n hash: meta.hash,\n });\n\n // For assets with a specified absolute URL, we use the existing origin instead of prepending the\n // development server or production CDN URL origin\n if (/^https?:\\/\\//.test(meta.httpServerLocation)) {\n const uri = meta.httpServerLocation + suffix + '?' + params;\n return { uri, hash };\n }\n\n // For assets during development using manifest2, we use the development server's URL origin\n const manifest2 = getManifest2();\n\n const devServerUrl = manifest2?.extra?.expoGo?.developer\n ? 'http://' + manifest2.extra.expoGo.debuggerHost\n : // For assets during development, we use the development server's URL origin\n getManifest().developer\n ? getManifest().bundleUrl\n : null;\n if (devServerUrl) {\n const baseUrl = new URL(meta.httpServerLocation + suffix, devServerUrl);\n\n baseUrl.searchParams.set('platform', Platform.OS);\n baseUrl.searchParams.set('hash', meta.hash);\n return {\n uri: baseUrl.href,\n hash,\n };\n }\n\n // Temporary fallback for loading assets in Expo Go home\n if (NativeModules.ExponentKernel) {\n return { uri: `https://classic-assets.eascdn.net/~assets/${encodeURIComponent(hash)}`, hash };\n }\n\n // In correctly configured apps, we arrive here if the asset is locally available on disk due to\n // being managed by expo-updates, and `getLocalAssetUri(hash)` must return a local URI for this\n // hash. Since the asset is local, we don't have a remote URL and specify an invalid URL (an empty\n // string) as a placeholder.\n return { uri: '', hash };\n}\n\n/**\n * Resolves the given URI to an absolute URI. If the given URI is already an absolute URI, it is\n * simply returned. Otherwise, if it is a relative URI, it is resolved relative to the manifest's\n * base URI.\n */\nexport function resolveUri(uri: string): string {\n // `manifestBaseUrl` is always an absolute URL or `null`.\n return manifestBaseUrl ? new URL(uri, manifestBaseUrl).href : uri;\n}\n\n// A very cheap path canonicalization like path.join but without depending on a `path` polyfill.\nexport function pathJoin(...paths: string[]): string {\n // Start by simply combining paths, without worrying about \"..\" or \".\"\n const combined = paths\n .map((part, index) => {\n if (index === 0) {\n return part.trim().replace(/\\/*$/, '');\n }\n return part.trim().replace(/(^\\/*|\\/*$)/g, '');\n })\n .filter((part) => part.length > 0)\n .join('/')\n .split('/');\n\n // Handle \"..\" and \".\" in paths\n const resolved: string[] = [];\n for (const part of combined) {\n if (part === '..') {\n resolved.pop(); // Remove the last element from the result\n } else if (part !== '.') {\n resolved.push(part);\n }\n }\n\n return resolved.join('/');\n}\n","export function getFilename(url: string): string {\n const { pathname, searchParams } = new URL(url, 'https://e');\n\n // When attached to a dev server, we use `unstable_path` to represent the file path. This ensures\n // the file name is not canonicalized by the browser.\n // NOTE(EvanBacon): This is technically not tied to `__DEV__` as it's possible to use this while bundling in production\n // mode.\n if (__DEV__) {\n if (searchParams.has('unstable_path')) {\n const encodedFilePath = decodeURIComponent(searchParams.get('unstable_path')!);\n return getBasename(encodedFilePath);\n }\n }\n\n return getBasename(pathname);\n}\n\nfunction getBasename(pathname: string): string {\n return pathname.substring(pathname.lastIndexOf('/') + 1);\n}\n\nexport function getFileExtension(url: string): string {\n const filename = getFilename(url);\n const dotIndex = filename.lastIndexOf('.');\n // Ignore leading dots for hidden files\n return dotIndex > 0 ? filename.substring(dotIndex) : '';\n}\n\n/**\n * Returns the base URL from a manifest's URL. For example, given a manifest hosted at\n * https://example.com/app/manifest.json, the base URL would be https://example.com/app/. Query\n * parameters and fragments also are removed.\n *\n * For an Expo-hosted project with a manifest hosted at https://exp.host/@user/project/index.exp, the\n * base URL would be https://exp.host/@user/project.\n *\n * We also normalize the \"exp\" protocol to \"http\" to handle internal URLs with the Expo schemes used\n * to tell the OS to open the URLs in the the Expo client.\n */\nexport function getManifestBaseUrl(manifestUrl: string): string {\n const urlObject = new URL(manifestUrl);\n\n let nextProtocol = urlObject.protocol;\n // Change the scheme to http(s) if it is exp(s)\n if (nextProtocol === 'exp:') {\n nextProtocol = 'http:';\n } else if (nextProtocol === 'exps:') {\n nextProtocol = 'https:';\n }\n urlObject.protocol = nextProtocol;\n\n // Trim filename, query parameters, and fragment, if any\n const directory = urlObject.pathname.substring(0, urlObject.pathname.lastIndexOf('/') + 1);\n urlObject.pathname = directory;\n urlObject.search = '';\n urlObject.hash = '';\n\n // The URL spec doesn't allow for changing the protocol to `http` or `https`\n // without a port set so instead, we'll just swap the protocol manually.\n return urlObject.protocol !== nextProtocol\n ? urlObject.href.replace(urlObject.protocol, nextProtocol)\n : urlObject.href;\n}\n","import { getAssetByID } from '@react-native/assets-registry/registry';\n\nimport AssetSourceResolver, { ResolvedAssetSource } from './AssetSourceResolver';\n\nlet _customSourceTransformer;\n\nexport function setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nexport default function resolveAssetSource(source: any): ResolvedAssetSource | null {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n // Doesn't matter since this is removed on web\n 'https://expo.dev',\n null,\n asset\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nObject.defineProperty(resolveAssetSource, 'setCustomSourceTransformer', {\n get() {\n return setCustomSourceTransformer;\n },\n});\n\nexport const { pickScale } = AssetSourceResolver;\n","import { getAssetByID } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\n\nimport { AssetMetadata, selectAssetSource } from './AssetSources';\nimport * as AssetUris from './AssetUris';\nimport * as ImageAssets from './ImageAssets';\nimport { getLocalAssetUri } from './LocalAssets';\nimport { downloadAsync, IS_ENV_WITH_UPDATES_ENABLED } from './PlatformUtils';\nimport resolveAssetSource from './resolveAssetSource';\n\n// @docsMissing\nexport type AssetDescriptor = {\n name: string;\n type: string;\n hash?: string | null;\n uri: string;\n width?: number | null;\n height?: number | null;\n};\n\ntype DownloadPromiseCallbacks = {\n resolve: () => void;\n reject: (error: Error) => void;\n};\n\nexport { AssetMetadata };\n\n// @needsAudit\n/**\n * The `Asset` class represents an asset in your app. It gives metadata about the asset (such as its\n * name and type) and provides facilities to load the asset data.\n */\nexport class Asset {\n /**\n * @private\n */\n static byHash = {};\n /**\n * @private\n */\n static byUri = {};\n\n /**\n * The name of the asset file without the extension. Also without the part from `@` onward in the\n * filename (used to specify scale factor for images).\n */\n name: string;\n /**\n * The extension of the asset filename.\n */\n type: string;\n /**\n * The MD5 hash of the asset's data.\n */\n hash: string | null = null;\n /**\n * A URI that points to the asset's data on the remote server. When running the published version\n * of your app, this refers to the location on Expo's asset server where Expo has stored your\n * asset. When running the app from Expo CLI during development, this URI points to Expo CLI's\n * server running on your computer and the asset is served directly from your computer. If you\n * are not using Classic Updates (legacy), this field should be ignored as we ensure your assets\n * are on device before before running your application logic.\n */\n uri: string;\n /**\n * If the asset has been downloaded (by calling [`downloadAsync()`](#downloadasync)), the\n * `file://` URI pointing to the local file on the device that contains the asset data.\n */\n localUri: string | null = null;\n /**\n * If the asset is an image, the width of the image data divided by the scale factor. The scale\n * factor is the number after `@` in the filename, or `1` if not present.\n */\n width: number | null = null;\n /**\n * If the asset is an image, the height of the image data divided by the scale factor. The scale factor is the number after `@` in the filename, or `1` if not present.\n */\n height: number | null = null;\n // @docsMissing\n downloading: boolean = false;\n // @docsMissing\n downloaded: boolean = false;\n\n /**\n * @private\n */\n _downloadCallbacks: DownloadPromiseCallbacks[] = [];\n\n constructor({ name, type, hash = null, uri, width, height }: AssetDescriptor) {\n this.name = name;\n this.type = type;\n this.hash = hash;\n this.uri = uri;\n\n if (typeof width === 'number') {\n this.width = width;\n }\n if (typeof height === 'number') {\n this.height = height;\n }\n\n if (hash) {\n this.localUri = getLocalAssetUri(hash, type);\n if (this.localUri) {\n this.downloaded = true;\n }\n }\n\n if (Platform.OS === 'web') {\n if (!name) {\n this.name = AssetUris.getFilename(uri);\n }\n if (!type) {\n this.type = AssetUris.getFileExtension(uri);\n }\n }\n }\n\n // @needsAudit\n /**\n * A helper that wraps `Asset.fromModule(module).downloadAsync` for convenience.\n * @param moduleId An array of `require('path/to/file')` or external network URLs. Can also be\n * just one module or URL without an Array.\n * @return Returns a Promise that fulfills with an array of `Asset`s when the asset(s) has been\n * saved to disk.\n * @example\n * ```ts\n * const [{ localUri }] = await Asset.loadAsync(require('./assets/snack-icon.png'));\n * ```\n */\n static loadAsync(moduleId: number | number[] | string | string[]): Promise {\n const moduleIds = Array.isArray(moduleId) ? moduleId : [moduleId];\n return Promise.all(moduleIds.map((moduleId) => Asset.fromModule(moduleId).downloadAsync()));\n }\n\n // @needsAudit\n /**\n * Returns the [`Asset`](#asset) instance representing an asset given its module or URL.\n * @param virtualAssetModule The value of `require('path/to/file')` for the asset or external\n * network URL\n * @return The [`Asset`](#asset) instance for the asset.\n */\n static fromModule(virtualAssetModule: number | string): Asset {\n if (typeof virtualAssetModule === 'string') {\n return Asset.fromURI(virtualAssetModule);\n }\n\n const meta = getAssetByID(virtualAssetModule);\n if (!meta) {\n throw new Error(`Module \"${virtualAssetModule}\" is missing from the asset registry`);\n }\n\n // Outside of the managed env we need the moduleId to initialize the asset\n // because resolveAssetSource depends on it\n if (!IS_ENV_WITH_UPDATES_ENABLED) {\n // null-check is performed above with `getAssetByID`.\n const { uri } = resolveAssetSource(virtualAssetModule)!;\n\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash: meta.hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n\n // TODO: FileSystem should probably support 'downloading' from drawable\n // resources But for now it doesn't (it only supports raw resources) and\n // React Native's Image works fine with drawable resource names for\n // images.\n if (Platform.OS === 'android' && !uri.includes(':') && (meta.width || meta.height)) {\n asset.localUri = asset.uri;\n asset.downloaded = true;\n }\n\n Asset.byHash[meta.hash] = asset;\n return asset;\n }\n\n return Asset.fromMetadata(meta);\n }\n\n // @docsMissing\n static fromMetadata(meta: AssetMetadata): Asset {\n // The hash of the whole asset, not to be confused with the hash of a specific file returned\n // from `selectAssetSource`\n const metaHash = meta.hash;\n if (Asset.byHash[metaHash]) {\n return Asset.byHash[metaHash];\n }\n\n const { uri, hash } = selectAssetSource(meta);\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n Asset.byHash[metaHash] = asset;\n return asset;\n }\n\n // @docsMissing\n static fromURI(uri: string): Asset {\n if (Asset.byUri[uri]) {\n return Asset.byUri[uri];\n }\n\n // Possibly a Base64-encoded URI\n let type = '';\n if (uri.indexOf(';base64') > -1) {\n type = uri.split(';')[0].split('/')[1];\n } else {\n const extension = AssetUris.getFileExtension(uri);\n type = extension.startsWith('.') ? extension.substring(1) : extension;\n }\n\n const asset = new Asset({\n name: '',\n type,\n hash: null,\n uri,\n });\n\n Asset.byUri[uri] = asset;\n\n return asset;\n }\n\n // @needsAudit\n /**\n * Downloads the asset data to a local file in the device's cache directory. Once the returned\n * promise is fulfilled without error, the [`localUri`](#assetlocaluri) field of this asset points\n * to a local file containing the asset data. The asset is only downloaded if an up-to-date local\n * file for the asset isn't already present due to an earlier download. The downloaded `Asset`\n * will be returned when the promise is resolved.\n * @return Returns a Promise which fulfills with an `Asset` instance.\n */\n async downloadAsync(): Promise {\n if (this.downloaded) {\n return this;\n }\n if (this.downloading) {\n await new Promise((resolve, reject) => {\n this._downloadCallbacks.push({ resolve, reject });\n });\n return this;\n }\n this.downloading = true;\n\n try {\n if (Platform.OS === 'web') {\n if (ImageAssets.isImageType(this.type)) {\n const { width, height, name } = await ImageAssets.getImageInfoAsync(this.uri);\n this.width = width;\n this.height = height;\n this.name = name;\n } else {\n this.name = AssetUris.getFilename(this.uri);\n }\n }\n this.localUri = await downloadAsync(this.uri, this.hash, this.type, this.name);\n\n this.downloaded = true;\n this._downloadCallbacks.forEach(({ resolve }) => resolve());\n } catch (e) {\n this._downloadCallbacks.forEach(({ reject }) => reject(e));\n throw e;\n } finally {\n this.downloading = false;\n this._downloadCallbacks = [];\n }\n return this;\n }\n}\n","export function getLocalAssetUri(hash: string, type: string | null): string | null {\n // noop on web\n return null;\n}\n","/* eslint-env browser */\nimport { Platform } from 'expo-modules-core';\n\nimport { getFilename } from './AssetUris';\n\ntype ImageInfo = {\n name: string;\n width: number;\n height: number;\n};\n\nexport function isImageType(type: string): boolean {\n return /^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(type);\n}\n\nexport function getImageInfoAsync(url: string): Promise {\n if (!Platform.isDOMAvailable) {\n return Promise.resolve({ name: getFilename(url), width: 0, height: 0 });\n }\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onerror = reject;\n img.onload = () => {\n resolve({\n name: getFilename(url),\n width: img.naturalWidth,\n height: img.naturalHeight,\n });\n };\n img.src = url;\n });\n}\n","import { Asset } from 'expo-asset';\nimport { Platform } from 'expo-modules-core';\n\nimport {\n AVPlaybackSource,\n AVPlaybackNativeSource,\n AVPlaybackStatus,\n AVPlaybackStatusToSet,\n PitchCorrectionQuality,\n AVPlaybackTolerance,\n} from './AV.types';\n\n// TODO add:\n// disableFocusOnAndroid\n// audio routes (at least did become noisy on android)\n// pan\n// pitch\n// API to explicitly request audio focus / session\n// API to select stream type on Android\n// subtitles API\n\n/**\n * @hidden\n */\nexport const _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS: number = 500;\n\n// @needsAudit\n/**\n * The default initial `AVPlaybackStatusToSet` of all `Audio.Sound` objects and `Video` components is as follows:\n *\n * ```javascript\n * {\n * progressUpdateIntervalMillis: 500,\n * positionMillis: 0,\n * shouldPlay: false,\n * rate: 1.0,\n * shouldCorrectPitch: false,\n * volume: 1.0,\n * isMuted: false,\n * isLooping: false,\n * }\n * ```\n *\n * This default initial status can be overwritten by setting the optional `initialStatus` in `loadAsync()` or `Audio.Sound.createAsync()`.\n */\nexport const _DEFAULT_INITIAL_PLAYBACK_STATUS: AVPlaybackStatusToSet = {\n positionMillis: 0,\n progressUpdateIntervalMillis: _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS,\n shouldPlay: false,\n rate: 1.0,\n shouldCorrectPitch: false,\n volume: 1.0,\n audioPan: 0,\n isMuted: false,\n isLooping: false,\n};\n\n// @needsAudit\n/**\n * @hidden\n */\nexport function getNativeSourceFromSource(\n source?: AVPlaybackSource | null\n): AVPlaybackNativeSource | null {\n let uri: string | null = null;\n let overridingExtension: string | null = null;\n let headers: AVPlaybackNativeSource['headers'];\n\n if (typeof source === 'string' && Platform.OS === 'web') {\n return {\n uri: source,\n overridingExtension,\n headers,\n };\n }\n\n const asset: Asset | null = _getAssetFromPlaybackSource(source);\n if (asset != null) {\n uri = asset.localUri || asset.uri;\n } else if (\n source != null &&\n typeof source !== 'number' &&\n 'uri' in source &&\n typeof source.uri === 'string'\n ) {\n uri = source.uri;\n }\n\n if (uri == null) {\n return null;\n }\n\n if (\n source != null &&\n typeof source !== 'number' &&\n 'overrideFileExtensionAndroid' in source &&\n typeof source.overrideFileExtensionAndroid === 'string'\n ) {\n overridingExtension = source.overrideFileExtensionAndroid;\n }\n\n if (\n source != null &&\n typeof source !== 'number' &&\n 'headers' in source &&\n typeof source.headers === 'object'\n ) {\n headers = source.headers;\n }\n return { uri, overridingExtension, headers };\n}\n\nfunction _getAssetFromPlaybackSource(source?: AVPlaybackSource | null): Asset | null {\n if (source == null) {\n return null;\n }\n\n let asset: Asset | null = null;\n if (typeof source === 'number') {\n asset = Asset.fromModule(source);\n } else if (source instanceof Asset) {\n asset = source;\n }\n return asset;\n}\n\n// @needsAudit\n/**\n * @hidden\n */\nexport function assertStatusValuesInBounds(status: AVPlaybackStatusToSet): void {\n if (typeof status.rate === 'number' && (status.rate < 0 || status.rate > 32)) {\n throw new RangeError('Rate value must be between 0.0 and 32.0');\n }\n if (typeof status.volume === 'number' && (status.volume < 0 || status.volume > 1)) {\n throw new RangeError('Volume value must be between 0.0 and 1.0');\n }\n if (typeof status.audioPan === 'number' && (status.audioPan < -1 || status.audioPan > 1)) {\n throw new RangeError('Pan value must be between -1.0 and 1.0');\n }\n}\n\n// @needsAudit\n/**\n * @hidden\n */\nexport async function getNativeSourceAndFullInitialStatusForLoadAsync(\n source: AVPlaybackSource | null,\n initialStatus: AVPlaybackStatusToSet | null,\n downloadFirst: boolean\n): Promise<{\n nativeSource: AVPlaybackNativeSource;\n fullInitialStatus: AVPlaybackStatusToSet;\n}> {\n // Get the full initial status\n const fullInitialStatus: AVPlaybackStatusToSet =\n initialStatus == null\n ? _DEFAULT_INITIAL_PLAYBACK_STATUS\n : {\n ..._DEFAULT_INITIAL_PLAYBACK_STATUS,\n ...initialStatus,\n };\n assertStatusValuesInBounds(fullInitialStatus);\n\n if (typeof source === 'string' && Platform.OS === 'web') {\n return {\n nativeSource: {\n uri: source,\n overridingExtension: null,\n },\n fullInitialStatus,\n };\n }\n\n // Download first if necessary.\n const asset = _getAssetFromPlaybackSource(source);\n if (downloadFirst && asset) {\n // TODO we can download remote uri too once @nikki93 has integrated this into Asset\n await asset.downloadAsync();\n }\n\n // Get the native source\n const nativeSource: AVPlaybackNativeSource | null = getNativeSourceFromSource(source);\n\n if (nativeSource === null) {\n throw new Error(`Cannot load an AV asset from a null playback source`);\n }\n\n // If asset has been downloaded use the localUri\n if (asset && asset.localUri) {\n nativeSource.uri = asset.localUri;\n }\n\n return { nativeSource, fullInitialStatus };\n}\n\n// @needsAudit\n/**\n * @hidden\n */\nexport function getUnloadedStatus(error: string | null = null): AVPlaybackStatus {\n return {\n isLoaded: false,\n ...(error ? { error } : null),\n };\n}\n\n// @needsAudit\nexport interface AV {\n /**\n * Sets a new `AVPlaybackStatusToSet` on the `playbackObject`. This method can only be called if the media has been loaded.\n * @param status The new `AVPlaybackStatusToSet` of the `playbackObject`, whose values will override the current playback status.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once the new status has been set successfully,\n * or rejects if setting the new status failed. See below for details on `AVPlaybackStatus`.\n */\n setStatusAsync(status: AVPlaybackStatusToSet): Promise;\n\n /**\n * Gets the `AVPlaybackStatus` of the `playbackObject`.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject`.\n */\n getStatusAsync(): Promise;\n}\n\n// @needsAudit\n/**\n * On the `playbackObject` reference, the following API is provided.\n */\nexport interface Playback extends AV {\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: true })`.\n *\n * Playback may not start immediately after calling this function for reasons such as buffering. Make sure to update your UI based\n * on the `isPlaying` and `isBuffering` properties of the `AVPlaybackStatus`.\n */\n playAsync(): Promise;\n\n /**\n * Loads the media from `source` into memory and prepares it for playing. This must be called before calling `setStatusAsync()`\n * or any of the convenience set status methods. This method can only be called if the `playbackObject` is in an unloaded state.\n * @param source The source of the media.\n * @param initialStatus The initial intended `AVPlaybackStatusToSet` of the `playbackObject`, whose values will override the default initial playback status.\n * This value defaults to `{}` if no parameter is passed. For more information see the details on `AVPlaybackStatusToSet` type\n * and the default initial playback status.\n * @param downloadAsync If set to `true`, the system will attempt to download the resource to the device before loading.\n * This value defaults to `true`. Note that at the moment, this will only work for `source`s of the form `require('path/to/file')` or `Asset` objects.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once it is loaded, or rejects if loading failed.\n * The `Promise` will also reject if the `playbackObject` was already loaded. See below for details on `AVPlaybackStatus`.\n */\n loadAsync(\n source: AVPlaybackSource,\n initialStatus?: AVPlaybackStatusToSet,\n downloadAsync?: boolean\n ): Promise;\n\n /**\n * Unloads the media from memory. `loadAsync()` must be called again in order to be able to play the media.\n * > This cleanup function will be automatically called in the `Video` component's `componentWillUnmount`.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once it is unloaded, or rejects if unloading failed.\n */\n unloadAsync(): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: true, positionMillis, seekMillisToleranceAfter: tolerances.seekMillisToleranceAfter, seekMillisToleranceBefore: tolerances.seekMillisToleranceBefore })`.\n *\n * Playback may not start immediately after calling this function for reasons such as buffering. Make sure to update your UI based\n * on the `isPlaying` and `isBuffering` properties of the `AVPlaybackStatus`.\n * @param positionMillis The desired position of playback in milliseconds.\n * @param tolerances The tolerances are used only on iOS ([more details](#what-is-seek-tolerance-and-why-would)).\n */\n playFromPositionAsync(\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: false })`.\n */\n pauseAsync(): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: false, positionMillis: 0 })`.\n */\n stopAsync(): Promise;\n\n /**\n * Replays the playback item. When using `playFromPositionAsync(0)` the item is seeked to the position at `0 ms`.\n * On iOS this method uses internal implementation of the player and is able to play the item from the beginning immediately.\n * @param status The new `AVPlaybackStatusToSet` of the `playbackObject`, whose values will override the current playback status.\n * `positionMillis` and `shouldPlay` properties will be overridden with respectively `0` and `true`.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once the new status has been set successfully,\n * or rejects if setting the new status failed.\n */\n replayAsync(status: AVPlaybackStatusToSet): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ positionMillis })`.\n * @param positionMillis The desired position of playback in milliseconds.\n * @param tolerances The tolerances are used only on iOS ([more details](#what-is-seek-tolerance-and-why-would)).\n */\n setPositionAsync(\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ rate, shouldCorrectPitch, pitchCorrectionQuality })`.\n * @param rate The desired playback rate of the media. This value must be between `0.0` and `32.0`. Only available on Android API version 23 and later and iOS.\n * @param shouldCorrectPitch A boolean describing if we should correct the pitch for a changed rate. If set to `true`, the pitch of the audio will be corrected\n * (so a rate different than `1.0` will timestretch the audio).\n * @param pitchCorrectionQuality iOS time pitch algorithm setting, defaults to `Audio.PitchCorrectionQuality.Medium`.\n * Using `Audio.PitchCorrectionQuality.Low` may cause automatic playback rate changes on iOS >= 17, as AVAudioTimePitchAlgorithmLowQualityZeroLatency is deprecated.\n */\n setRateAsync(\n rate: number,\n shouldCorrectPitch: boolean,\n pitchCorrectionQuality?: PitchCorrectionQuality\n ): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ volume, audioPan })`.\n * Note: `audioPan` is currently only supported on Android using `androidImplementation: 'MediaPlayer'`\n * @param volume A number between `0.0` (silence) and `1.0` (maximum volume).\n * @param audioPan A number between `-1.0` (full left) and `1.0` (full right).\n */\n setVolumeAsync(volume: number, audioPan?: number): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ isMuted })`.\n * @param isMuted A boolean describing if the audio of this media should be muted.\n */\n setIsMutedAsync(isMuted: boolean): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ isLooping })`.\n * @param isLooping A boolean describing if the media should play once (`false`) or loop indefinitely (`true`).\n */\n setIsLoopingAsync(isLooping: boolean): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ progressUpdateIntervalMillis })`.\n * @param progressUpdateIntervalMillis The new minimum interval in milliseconds between calls of `onPlaybackStatusUpdate`.\n * See `setOnPlaybackStatusUpdate()` for details.\n */\n setProgressUpdateIntervalAsync(progressUpdateIntervalMillis: number): Promise;\n}\n\n/**\n * @hidden\n * A mixin that defines common playback methods for A/V classes, so they implement the `Playback`\n * interface.\n */\nexport const PlaybackMixin = {\n async playAsync(): Promise {\n return (this as any as Playback).setStatusAsync({ shouldPlay: true });\n },\n\n async playFromPositionAsync(\n positionMillis: number,\n tolerances: AVPlaybackTolerance = {}\n ): Promise {\n return (this as any as Playback).setStatusAsync({\n positionMillis,\n shouldPlay: true,\n seekMillisToleranceAfter: tolerances.toleranceMillisAfter,\n seekMillisToleranceBefore: tolerances.toleranceMillisBefore,\n });\n },\n\n async pauseAsync(): Promise {\n return (this as any as Playback).setStatusAsync({ shouldPlay: false });\n },\n\n async stopAsync(): Promise {\n return (this as any as Playback).setStatusAsync({ positionMillis: 0, shouldPlay: false });\n },\n\n async setPositionAsync(\n positionMillis: number,\n tolerances: AVPlaybackTolerance = {}\n ): Promise {\n return (this as any as Playback).setStatusAsync({\n positionMillis,\n seekMillisToleranceAfter: tolerances.toleranceMillisAfter,\n seekMillisToleranceBefore: tolerances.toleranceMillisBefore,\n });\n },\n\n async setRateAsync(\n rate: number,\n shouldCorrectPitch: boolean = false,\n pitchCorrectionQuality: PitchCorrectionQuality = PitchCorrectionQuality.Medium\n ): Promise {\n return (this as any as Playback).setStatusAsync({\n rate,\n shouldCorrectPitch,\n pitchCorrectionQuality,\n });\n },\n\n async setVolumeAsync(volume: number, audioPan?: number): Promise {\n return (this as any as Playback).setStatusAsync({ volume, audioPan });\n },\n\n async setIsMutedAsync(isMuted: boolean): Promise {\n return (this as any as Playback).setStatusAsync({ isMuted });\n },\n\n async setIsLoopingAsync(isLooping: boolean): Promise {\n return (this as any as Playback).setStatusAsync({ isLooping });\n },\n\n async setProgressUpdateIntervalAsync(\n progressUpdateIntervalMillis: number\n ): Promise {\n return (this as any as Playback).setStatusAsync({ progressUpdateIntervalMillis });\n },\n};\n\nexport * from './AV.types';\n","import { Asset } from 'expo-asset';\n\nimport ExponentAV from './ExponentAV';\n\n// @needsAudit\n/**\n * Check [official Apple documentation](https://developer.apple.com/documentation/avfoundation/avaudiotimepitchalgorithmlowqualityzerolatency) for more information.\n */\nexport enum PitchCorrectionQuality {\n /**\n * Equivalent to `AVAudioTimePitchAlgorithmLowQualityZeroLatency`.\n */\n Low = ExponentAV && ExponentAV.Qualities && ExponentAV.Qualities.Low,\n /**\n * Equivalent to `AVAudioTimePitchAlgorithmTimeDomain`.\n */\n Medium = ExponentAV && ExponentAV.Qualities && ExponentAV.Qualities.Medium,\n /**\n * Equivalent to `AVAudioTimePitchAlgorithmSpectral`.\n */\n High = ExponentAV && ExponentAV.Qualities && ExponentAV.Qualities.High,\n}\n\n// @needsAudit\n/**\n * The following forms of source are supported:\n * - A dictionary of the form `AVPlaybackSourceObject`.\n * The `overrideFileExtensionAndroid` property may come in handy if the player receives an URL like `example.com/play` which redirects to `example.com/player.m3u8`.\n * Setting this property to `m3u8` would allow the Android player to properly infer the content type of the media and use proper media file reader.\n * - `require('path/to/file')` for a media file asset in the source code directory.\n * - An [`Asset`](./asset) object for a media file asset.\n *\n * The [iOS developer documentation](https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html)\n * lists the audio and video formats supported on iOS.\n *\n * There are two sets of audio and video formats supported on Android: [formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html)\n * and [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table).\n * Expo uses ExoPlayer implementation by default. To use `MediaPlayer`, add `androidImplementation: 'MediaPlayer'` to the initial status of the AV object.\n */\nexport type AVPlaybackSource = number | AVPlaybackSourceObject | Asset;\n\n// @needsAudit\n/**\n * One of the possible forms of the `AVPlaybackSource`.\n */\nexport type AVPlaybackSourceObject = {\n /**\n * A network URL pointing to a media file.\n */\n uri: string;\n /**\n * An optional string overriding extension inferred from the URL.\n * @platform android\n */\n overrideFileExtensionAndroid?: string;\n /**\n * An optional headers object passed in a network request.\n */\n headers?: Record;\n};\n\n/**\n * @hidden\n */\nexport type AVPlaybackNativeSource = {\n uri: string;\n overridingExtension?: string | null;\n headers?: Record;\n};\n\n// @needsAudit\n/**\n * Object passed to the `onMetadataUpdate` function.\n */\nexport type AVMetadata = {\n /**\n * A string with the title of the sound object.\n */\n title?: string;\n};\n\n// @needsAudit\n/**\n * This is the structure returned from all playback API calls and describes the state of the `playbackObject` at that point in time.\n * It can take a form of `AVPlaybackStatusSuccess` or `AVPlaybackStatusError` based on the `playbackObject` load status.\n */\nexport type AVPlaybackStatus = AVPlaybackStatusError | AVPlaybackStatusSuccess;\n\n// @needsAudit\nexport type AVPlaybackStatusError = {\n /**\n * A boolean set to `false`.\n */\n isLoaded: false;\n /**\n * Underlying implementation to use (when set to `MediaPlayer` it uses [Android's MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html),\n * uses [ExoPlayer](https://google.github.io/ExoPlayer/) otherwise). You may need to use this property if you're trying to play an item unsupported by ExoPlayer\n * ([formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html), [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table)).\n *\n * Note that setting this property takes effect only when the AV object is just being created (toggling its value later will do nothing).\n *\n * @platform android\n */\n androidImplementation?: string;\n /**\n * A string only present if the `playbackObject` just encountered a fatal error and forced unload.\n * Populated exactly once when an error forces the object to unload.\n */\n error?: string;\n};\n\n// @needsAudit\nexport type AVPlaybackStatusSuccess = {\n /**\n * A boolean set to `true`.\n */\n isLoaded: true;\n /**\n * Underlying implementation to use (when set to `MediaPlayer` it uses [Android's MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html),\n * uses [ExoPlayer](https://google.github.io/ExoPlayer/) otherwise). You may need to use this property if you're trying to play an item unsupported by ExoPlayer\n * ([formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html), [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table)).\n *\n * Note that setting this property takes effect only when the AV object is just being created (toggling its value later will do nothing).\n *\n * @platform android\n */\n androidImplementation?: string;\n /**\n * The location of the media source.\n */\n uri: string;\n /**\n * The minimum interval in milliseconds between calls of `onPlaybackStatusUpdate`. See `setOnPlaybackStatusUpdate()` for details.\n */\n progressUpdateIntervalMillis: number;\n /**\n * The duration of the media in milliseconds. This is only present if the media has a duration.\n * > Note that in some cases, a media file's duration is readable on Android, but not on iOS.\n */\n durationMillis?: number;\n /**\n * The current position of playback in milliseconds.\n */\n positionMillis: number;\n /**\n * The position until which the media has been buffered into memory. Like `durationMillis`, this is only present in some cases.\n */\n playableDurationMillis?: number;\n // @docsMissing\n seekMillisToleranceBefore?: number;\n // @docsMissing\n seekMillisToleranceAfter?: number;\n /**\n * A boolean describing if the media is supposed to play.\n */\n shouldPlay: boolean;\n /**\n * A boolean describing if the media is currently playing.\n */\n isPlaying: boolean;\n /**\n * A boolean describing if the media is currently buffering.\n */\n isBuffering: boolean;\n /**\n * The current rate of the media.\n */\n rate: number;\n /**\n * A boolean describing if we are correcting the pitch for a changed rate.\n */\n shouldCorrectPitch: boolean;\n /**\n * iOS time pitch algorithm setting. See `setRateAsync` for details.\n */\n pitchCorrectionQuality?: PitchCorrectionQuality;\n /**\n * The current volume of the audio for this media.\n */\n volume: number;\n /**\n * A boolean describing if the audio of this media is currently muted.\n */\n isMuted: boolean;\n /**\n * The current audio panning value of the audio for this media.\n */\n audioPan: number;\n /**\n * A boolean describing if the media is currently looping.\n */\n isLooping: boolean;\n /**\n * A boolean describing if the media just played to completion at the time that this status was received.\n * When the media plays to completion, the function passed in `setOnPlaybackStatusUpdate()` is called exactly once\n * with `didJustFinish` set to `true`. `didJustFinish` is never `true` in any other case.\n */\n didJustFinish: boolean;\n};\n\n// @needsAudit\n/**\n * This is the structure passed to `setStatusAsync()` to modify the state of the `playbackObject`.\n */\nexport type AVPlaybackStatusToSet = {\n /**\n * Underlying implementation to use (when set to `MediaPlayer` it uses [Android's MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html),\n * uses [ExoPlayer](https://google.github.io/ExoPlayer/) otherwise). You may need to use this property if you're trying to play an item unsupported by ExoPlayer\n * ([formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html), [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table)).\n *\n * Note that setting this property takes effect only when the AV object is just being created (toggling its value later will do nothing).\n *\n * @platform android\n */\n androidImplementation?: string;\n /**\n * The minimum interval in milliseconds between calls of `onPlaybackStatusUpdate`. See `setOnPlaybackStatusUpdate()` for details.\n */\n progressUpdateIntervalMillis?: number;\n /**\n * The current position of playback in milliseconds.\n */\n positionMillis?: number;\n // @docsMissing\n seekMillisToleranceBefore?: number;\n // @docsMissing\n seekMillisToleranceAfter?: number;\n /**\n * A boolean describing if the media is supposed to play.\n */\n shouldPlay?: boolean;\n /**\n * The current rate of the media.\n * @platform android API 23+\n * @platform ios\n */\n rate?: number;\n /**\n * A boolean describing if we are correcting the pitch for a changed rate.\n */\n shouldCorrectPitch?: boolean;\n /**\n * The current volume of the audio for this media.\n * > Note that this only affect the audio of this `playbackObject` and do NOT affect the system volume.\n */\n volume?: number;\n /**\n * A boolean describing if the audio of this media is currently muted.\n * > Note that this only affect the audio of this `playbackObject` and do NOT affect the system volume.\n */\n isMuted?: boolean;\n /**\n * The current audio panning value of the audio for this media.\n * > Note that this only affect the audio of this `playbackObject` and do NOT affect the system volume.\n * > Also note that this is only available when the video was loaded using `androidImplementation: 'MediaPlayer'`\n * @platform android\n */\n audioPan?: number;\n /**\n * A boolean describing if the media is currently looping.\n */\n isLooping?: boolean;\n /**\n * iOS time pitch algorithm setting. See `setRateAsync` for details.\n */\n pitchCorrectionQuality?: PitchCorrectionQuality;\n};\n\n// @docsMissing\nexport type AVPlaybackTolerance = { toleranceMillisBefore?: number; toleranceMillisAfter?: number };\n","// @needsAudit\nexport type AudioMode = {\n /**\n * A boolean selecting if recording is enabled on iOS.\n * > When this flag is set to `true`, playback may be routed to the phone earpiece instead of to the speaker. Set it back to `false` after stopping recording to reenable playback through the speaker.\n * @default false\n */\n allowsRecordingIOS: boolean;\n /**\n * An enum selecting how your experience's audio should interact with the audio from other apps on iOS.\n */\n interruptionModeIOS: InterruptionModeIOS;\n /**\n * A boolean selecting if your experience's audio should play in silent mode on iOS.\n * @default false\n */\n playsInSilentModeIOS: boolean;\n /**\n * A boolean selecting if the audio session (playback or recording) should stay active even when the app goes into background.\n * > This is not available in Expo Go for iOS, it will only work in standalone apps.\n * > To enable it for standalone apps, [follow the instructions below](#playing-or-recording-audio-in-background-ios)\n * > to add `UIBackgroundModes` to your app configuration.\n * @default false\n */\n staysActiveInBackground: boolean;\n /**\n * An enum selecting how your experience's audio should interact with the audio from other apps on Android.\n */\n interruptionModeAndroid: InterruptionModeAndroid;\n /**\n * A boolean selecting if your experience's audio should automatically be lowered in volume (\"duck\") if audio from another\n * app interrupts your experience. If `false`, audio from other apps will pause your audio.\n * @default true\n */\n shouldDuckAndroid: boolean;\n /**\n * A boolean selecting if the audio is routed to earpiece on Android.\n * @default false\n */\n playThroughEarpieceAndroid: boolean;\n};\n\n// @needsAudit\nexport enum InterruptionModeIOS {\n /**\n * **This is the default option.** If this option is set, your experience's audio is mixed with audio playing in background apps.\n */\n MixWithOthers = 0,\n /**\n * If this option is set, your experience's audio interrupts audio from other apps.\n */\n DoNotMix = 1,\n /**\n * If this option is set, your experience's audio lowers the volume (\"ducks\") of audio from other apps while your audio plays.\n */\n DuckOthers = 2,\n}\n\nexport enum InterruptionModeAndroid {\n /**\n * If this option is set, your experience's audio interrupts audio from other apps.\n */\n DoNotMix = 1,\n /**\n * **This is the default option.** If this option is set, your experience's audio lowers the volume (\"ducks\") of audio from other apps while your audio plays.\n */\n DuckOthers = 2,\n}\n","import {\n PermissionResponse,\n PermissionStatus,\n PermissionHookOptions,\n createPermissionHook,\n EventEmitter,\n Subscription,\n Platform,\n} from 'expo-modules-core';\n\nimport { isAudioEnabled, throwIfAudioIsDisabled } from './AudioAvailability';\nimport {\n RecordingInput,\n RecordingObject,\n RecordingOptions,\n RecordingStatus,\n} from './Recording.types';\nimport { RecordingOptionsPresets } from './RecordingConstants';\nimport { Sound, SoundObject } from './Sound';\nimport {\n _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS,\n AVPlaybackStatus,\n AVPlaybackStatusToSet,\n} from '../AV';\nimport ExponentAV from '../ExponentAV';\n\nlet _recorderExists: boolean = false;\nconst eventEmitter = Platform.OS === 'android' ? new EventEmitter(ExponentAV) : null;\n\n/**\n * Checks user's permissions for audio recording.\n * @return A promise that resolves to an object of type `PermissionResponse`.\n */\nexport async function getPermissionsAsync(): Promise {\n return ExponentAV.getPermissionsAsync();\n}\n\n/**\n * Asks the user to grant permissions for audio recording.\n * @return A promise that resolves to an object of type `PermissionResponse`.\n */\nexport async function requestPermissionsAsync(): Promise {\n return ExponentAV.requestPermissionsAsync();\n}\n\n/**\n * Check or request permissions to record audio.\n * This uses both `requestPermissionAsync` and `getPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [permissionResponse, requestPermission] = Audio.usePermissions();\n * ```\n */\nexport const usePermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * > **warning** **Warning**: Experimental for web.\n *\n * This class represents an audio recording. After creating an instance of this class, `prepareToRecordAsync`\n * must be called in order to record audio. Once recording is finished, call `stopAndUnloadAsync`. Note that\n * only one recorder is allowed to exist in the state between `prepareToRecordAsync` and `stopAndUnloadAsync`\n * at any given time.\n *\n * Note that your experience must request audio recording permissions in order for recording to function.\n * See the [`Permissions` module](/guides/permissions) for more details.\n *\n * Additionally, audio recording is [not supported in the iOS Simulator](/workflow/ios-simulator/#limitations).\n *\n * @example\n * ```ts\n * const recording = new Audio.Recording();\n * try {\n * await recording.prepareToRecordAsync(Audio.RecordingOptionsPresets.HIGH_QUALITY);\n * await recording.startAsync();\n * // You are now recording!\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * @return A newly constructed instance of `Audio.Recording`.\n */\nexport class Recording {\n _subscription: Subscription | null = null;\n _canRecord: boolean = false;\n _isDoneRecording: boolean = false;\n _finalDurationMillis: number = 0;\n _uri: string | null = null;\n _onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null = null;\n _progressUpdateTimeoutVariable: number | null = null;\n _progressUpdateIntervalMillis: number = _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS;\n _options: RecordingOptions | null = null;\n\n // Internal methods\n\n _cleanupForUnloadedRecorder = async (finalStatus?: RecordingStatus) => {\n this._canRecord = false;\n this._isDoneRecording = true;\n this._finalDurationMillis = finalStatus?.durationMillis ?? 0;\n _recorderExists = false;\n if (this._subscription) {\n this._subscription.remove();\n this._subscription = null;\n }\n this._disablePolling();\n return await this.getStatusAsync(); // Automatically calls onRecordingStatusUpdate for the final state.\n };\n\n _pollingLoop = async () => {\n if (isAudioEnabled() && this._canRecord && this._onRecordingStatusUpdate != null) {\n this._progressUpdateTimeoutVariable = setTimeout(\n this._pollingLoop,\n this._progressUpdateIntervalMillis\n ) as any;\n try {\n await this.getStatusAsync();\n } catch {\n this._disablePolling();\n }\n }\n };\n\n _disablePolling() {\n if (this._progressUpdateTimeoutVariable != null) {\n clearTimeout(this._progressUpdateTimeoutVariable);\n this._progressUpdateTimeoutVariable = null;\n }\n }\n\n _enablePollingIfNecessaryAndPossible() {\n if (isAudioEnabled() && this._canRecord && this._onRecordingStatusUpdate != null) {\n this._disablePolling();\n this._pollingLoop();\n }\n }\n\n _callOnRecordingStatusUpdateForNewStatus(status: RecordingStatus) {\n if (this._onRecordingStatusUpdate != null) {\n this._onRecordingStatusUpdate(status);\n }\n }\n\n async _performOperationAndHandleStatusAsync(\n operation: () => Promise\n ): Promise {\n throwIfAudioIsDisabled();\n if (this._canRecord) {\n const status = await operation();\n this._callOnRecordingStatusUpdateForNewStatus(status);\n return status;\n } else {\n throw new Error('Cannot complete operation because this recorder is not ready to record.');\n }\n }\n\n /**\n * Creates and starts a recording using the given options, with optional `onRecordingStatusUpdate` and `progressUpdateIntervalMillis`.\n *\n * ```ts\n * const { recording, status } = await Audio.Recording.createAsync(\n * options,\n * onRecordingStatusUpdate,\n * progressUpdateIntervalMillis\n * );\n *\n * // Which is equivalent to the following:\n * const recording = new Audio.Recording();\n * await recording.prepareToRecordAsync(options);\n * recording.setOnRecordingStatusUpdate(onRecordingStatusUpdate);\n * await recording.startAsync();\n * ```\n *\n * @param options Options for the recording, including sample rate, bitrate, channels, format, encoder, and extension. If no options are passed to,\n * the recorder will be created with options `Audio.RecordingOptionsPresets.LOW_QUALITY`. See below for details on `RecordingOptions`.\n * @param onRecordingStatusUpdate A function taking a single parameter `status` (a dictionary, described in `getStatusAsync`).\n * @param progressUpdateIntervalMillis The interval between calls of `onRecordingStatusUpdate`. This value defaults to 500 milliseconds.\n *\n * @example\n * ```ts\n * try {\n * const { recording: recordingObject, status } = await Audio.Recording.createAsync(\n * Audio.RecordingOptionsPresets.HIGH_QUALITY\n * );\n * // You are now recording!\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * @return A `Promise` that is rejected if creation failed, or fulfilled with the following dictionary if creation succeeded.\n */\n static createAsync = async (\n options: RecordingOptions = RecordingOptionsPresets.LOW_QUALITY,\n onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null = null,\n progressUpdateIntervalMillis: number | null = null\n ): Promise => {\n const recording: Recording = new Recording();\n if (progressUpdateIntervalMillis) {\n recording._progressUpdateIntervalMillis = progressUpdateIntervalMillis;\n }\n recording.setOnRecordingStatusUpdate(onRecordingStatusUpdate);\n await recording.prepareToRecordAsync({\n ...options,\n keepAudioActiveHint: true,\n });\n try {\n const status = await recording.startAsync();\n return { recording, status };\n } catch (err) {\n recording.stopAndUnloadAsync();\n throw err;\n }\n };\n\n // Get status API\n\n /**\n * Gets the `status` of the `Recording`.\n * @return A `Promise` that is resolved with the `RecordingStatus` object.\n */\n getStatusAsync = async (): Promise => {\n // Automatically calls onRecordingStatusUpdate.\n if (this._canRecord) {\n return this._performOperationAndHandleStatusAsync(() => ExponentAV.getAudioRecordingStatus());\n }\n const status = {\n canRecord: false,\n isRecording: false,\n isDoneRecording: this._isDoneRecording,\n durationMillis: this._finalDurationMillis,\n };\n this._callOnRecordingStatusUpdateForNewStatus(status);\n return status;\n };\n\n /**\n * Sets a function to be called regularly with the `RecordingStatus` of the `Recording`.\n *\n * `onRecordingStatusUpdate` will be called when another call to the API for this recording completes (such as `prepareToRecordAsync()`,\n * `startAsync()`, `getStatusAsync()`, or `stopAndUnloadAsync()`), and will also be called at regular intervals while the recording can record.\n * Call `setProgressUpdateInterval()` to modify the interval with which `onRecordingStatusUpdate` is called while the recording can record.\n *\n * @param onRecordingStatusUpdate A function taking a single parameter `RecordingStatus`.\n */\n setOnRecordingStatusUpdate(onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null) {\n this._onRecordingStatusUpdate = onRecordingStatusUpdate;\n if (onRecordingStatusUpdate == null) {\n this._disablePolling();\n } else {\n this._enablePollingIfNecessaryAndPossible();\n }\n this.getStatusAsync();\n }\n\n /**\n * Sets the interval with which `onRecordingStatusUpdate` is called while the recording can record.\n * See `setOnRecordingStatusUpdate` for details. This value defaults to 500 milliseconds.\n * @param progressUpdateIntervalMillis The new interval between calls of `onRecordingStatusUpdate`.\n */\n setProgressUpdateInterval(progressUpdateIntervalMillis: number) {\n this._progressUpdateIntervalMillis = progressUpdateIntervalMillis;\n this.getStatusAsync();\n }\n\n // Record API\n\n /**\n * Loads the recorder into memory and prepares it for recording. This must be called before calling `startAsync()`.\n * This method can only be called if the `Recording` instance has never yet been prepared.\n *\n * @param options `RecordingOptions` for the recording, including sample rate, bitrate, channels, format, encoder, and extension.\n * If no options are passed to `prepareToRecordAsync()`, the recorder will be created with options `Audio.RecordingOptionsPresets.LOW_QUALITY`.\n *\n * @return A `Promise` that is fulfilled when the recorder is loaded and prepared, or rejects if this failed. If another `Recording` exists\n * in your experience that is currently prepared to record, the `Promise` will reject. If the `RecordingOptions` provided are invalid,\n * the `Promise` will also reject. The promise is resolved with the `RecordingStatus` of the recording.\n */\n async prepareToRecordAsync(\n options: RecordingOptions = RecordingOptionsPresets.LOW_QUALITY\n ): Promise {\n throwIfAudioIsDisabled();\n\n if (_recorderExists) {\n throw new Error('Only one Recording object can be prepared at a given time.');\n }\n\n if (this._isDoneRecording) {\n throw new Error('This Recording object is done recording; you must make a new one.');\n }\n\n if (!options || !options.android || !options.ios) {\n throw new Error(\n 'You must provide recording options for android and ios in order to prepare to record.'\n );\n }\n\n const extensionRegex = /^\\.\\w+$/;\n if (\n !options.android.extension ||\n !options.ios.extension ||\n !extensionRegex.test(options.android.extension) ||\n !extensionRegex.test(options.ios.extension)\n ) {\n throw new Error(`Your file extensions must match ${extensionRegex.toString()}.`);\n }\n\n if (!this._canRecord) {\n if (eventEmitter) {\n this._subscription = eventEmitter.addListener(\n 'Expo.Recording.recorderUnloaded',\n this._cleanupForUnloadedRecorder\n );\n }\n\n const {\n uri,\n status,\n }: {\n uri: string | null;\n // status is of type RecordingStatus, but without the canRecord field populated\n status: Pick>;\n } = await ExponentAV.prepareAudioRecorder(options);\n _recorderExists = true;\n this._uri = uri;\n this._options = options;\n this._canRecord = true;\n\n const currentStatus = { ...status, canRecord: true };\n this._callOnRecordingStatusUpdateForNewStatus(currentStatus);\n this._enablePollingIfNecessaryAndPossible();\n return currentStatus;\n } else {\n throw new Error('This Recording object is already prepared to record.');\n }\n }\n\n /**\n * Returns a list of available recording inputs. This method can only be called if the `Recording` has been prepared.\n * @return A `Promise` that is fulfilled with an array of `RecordingInput` objects.\n */\n async getAvailableInputs(): Promise {\n return ExponentAV.getAvailableInputs();\n }\n\n /**\n * Returns the currently-selected recording input. This method can only be called if the `Recording` has been prepared.\n * @return A `Promise` that is fulfilled with a `RecordingInput` object.\n */\n async getCurrentInput(): Promise {\n return ExponentAV.getCurrentInput();\n }\n\n /**\n * Sets the current recording input.\n * @param inputUid The uid of a `RecordingInput`.\n * @return A `Promise` that is resolved if successful or rejected if not.\n */\n async setInput(inputUid: string): Promise {\n return ExponentAV.setInput(inputUid);\n }\n\n /**\n * Begins recording. This method can only be called if the `Recording` has been prepared.\n * @return A `Promise` that is fulfilled when recording has begun, or rejects if recording could not be started.\n * The promise is resolved with the `RecordingStatus` of the recording.\n */\n async startAsync(): Promise {\n return this._performOperationAndHandleStatusAsync(() => ExponentAV.startAudioRecording());\n }\n\n /**\n * Pauses recording. This method can only be called if the `Recording` has been prepared.\n *\n * > This is only available on Android API version 24 and later.\n *\n * @return A `Promise` that is fulfilled when recording has paused, or rejects if recording could not be paused.\n * If the Android API version is less than 24, the `Promise` will reject. The promise is resolved with the\n * `RecordingStatus` of the recording.\n */\n async pauseAsync(): Promise {\n return this._performOperationAndHandleStatusAsync(() => ExponentAV.pauseAudioRecording());\n }\n\n /**\n * Stops the recording and deallocates the recorder from memory. This reverts the `Recording` instance\n * to an unprepared state, and another `Recording` instance must be created in order to record again.\n * This method can only be called if the `Recording` has been prepared.\n *\n * > On Android this method may fail with `E_AUDIO_NODATA` when called too soon after `startAsync` and\n * > no audio data has been recorded yet. In that case the recorded file will be invalid and should be discarded.\n *\n * @return A `Promise` that is fulfilled when recording has stopped, or rejects if recording could not be stopped.\n * The promise is resolved with the `RecordingStatus` of the recording.\n */\n async stopAndUnloadAsync(): Promise {\n if (!this._canRecord) {\n if (this._isDoneRecording) {\n throw new Error('Cannot unload a Recording that has already been unloaded.');\n } else {\n throw new Error('Cannot unload a Recording that has not been prepared.');\n }\n }\n // We perform a separate native API call so that the state of the Recording can be updated with\n // the final duration of the recording. (We cast stopStatus as Object to appease Flow)\n let stopResult: RecordingStatus | undefined;\n let stopError: Error | undefined;\n try {\n stopResult = await ExponentAV.stopAudioRecording();\n } catch (err) {\n stopError = err;\n }\n\n // Web has to return the URI at the end of recording, so needs a little destructuring\n if (Platform.OS === 'web' && stopResult?.uri !== undefined) {\n this._uri = stopResult.uri;\n }\n\n // Clean-up and return status\n await ExponentAV.unloadAudioRecorder();\n const status = await this._cleanupForUnloadedRecorder(stopResult);\n return stopError ? Promise.reject(stopError) : status;\n }\n\n // Read API\n\n /**\n * Gets the local URI of the `Recording`. Note that this will only succeed once the `Recording` is prepared\n * to record. On web, this will not return the URI until the recording is finished.\n * @return A `string` with the local URI of the `Recording`, or `null` if the `Recording` is not prepared\n * to record (or, on Web, if the recording has not finished).\n */\n getURI(): string | null {\n return this._uri;\n }\n\n /**\n * @deprecated Use `createNewLoadedSoundAsync()` instead.\n */\n async createNewLoadedSound(\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null\n ): Promise {\n console.warn(\n `createNewLoadedSound is deprecated in favor of createNewLoadedSoundAsync, which has the same API aside from the method name`\n );\n return this.createNewLoadedSoundAsync(initialStatus, onPlaybackStatusUpdate);\n }\n\n /**\n * Creates and loads a new `Sound` object to play back the `Recording`. Note that this will only succeed once the `Recording`\n * is done recording and `stopAndUnloadAsync()` has been called.\n *\n * @param initialStatus The initial intended `PlaybackStatusToSet` of the sound, whose values will override the default initial playback status.\n * This value defaults to `{}` if no parameter is passed. See the [AV documentation](/versions/latest/sdk/av) for details on `PlaybackStatusToSet`\n * and the default initial playback status.\n * @param onPlaybackStatusUpdate A function taking a single parameter `PlaybackStatus`. This value defaults to `null` if no parameter is passed.\n * See the [AV documentation](/versions/latest/sdk/av) for details on the functionality provided by `onPlaybackStatusUpdate`\n *\n * @return A `Promise` that is rejected if creation failed, or fulfilled with the `SoundObject`.\n */\n async createNewLoadedSoundAsync(\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null\n ): Promise {\n if (this._uri == null || !this._isDoneRecording) {\n throw new Error('Cannot create sound when the Recording has not finished!');\n }\n return Sound.createAsync(\n // $FlowFixMe: Flow can't distinguish between this literal and Asset\n { uri: this._uri },\n initialStatus,\n onPlaybackStatusUpdate,\n false\n );\n }\n}\n\nexport { PermissionResponse, PermissionStatus, PermissionHookOptions };\n\nexport * from './RecordingConstants';\n\nexport * from './Recording.types';\n","import { AudioMode, InterruptionModeAndroid, InterruptionModeIOS } from './Audio.types';\nimport ExponentAV from './ExponentAV';\n\nexport * from './Audio/Recording';\nexport * from './Audio/Sound';\nexport { setIsEnabledAsync } from './Audio/AudioAvailability';\nexport { PitchCorrectionQuality } from './AV';\n\nconst _populateMissingKeys = (\n userAudioMode: Partial,\n defaultAudioMode: AudioMode\n): AudioMode => {\n for (const key in defaultAudioMode) {\n if (!userAudioMode.hasOwnProperty(key)) {\n userAudioMode[key] = defaultAudioMode[key];\n }\n }\n return userAudioMode as AudioMode;\n};\n\nconst defaultMode: AudioMode = {\n allowsRecordingIOS: false,\n interruptionModeIOS: InterruptionModeIOS.MixWithOthers,\n playsInSilentModeIOS: false,\n staysActiveInBackground: false,\n interruptionModeAndroid: InterruptionModeAndroid.DuckOthers,\n shouldDuckAndroid: true,\n playThroughEarpieceAndroid: false,\n};\n\nlet currentAudioMode: AudioMode | null = null;\n\nfunction getCurrentAudioMode(): AudioMode {\n if (!currentAudioMode) {\n return defaultMode;\n }\n return currentAudioMode;\n}\n\n/**\n * We provide this API to customize the audio experience on iOS and Android.\n * @param partialMode\n * @return A `Promise` that will reject if the audio mode could not be enabled for the device.\n */\nexport async function setAudioModeAsync(partialMode: Partial): Promise {\n const mode = _populateMissingKeys(partialMode, getCurrentAudioMode());\n\n if (!InterruptionModeIOS[mode.interruptionModeIOS]) {\n throw new Error(`\"interruptionModeIOS\" was set to an invalid value.`);\n }\n if (!InterruptionModeAndroid[mode.interruptionModeAndroid]) {\n throw new Error(`\"interruptionModeAndroid\" was set to an invalid value.`);\n }\n if (\n typeof mode.allowsRecordingIOS !== 'boolean' ||\n typeof mode.playsInSilentModeIOS !== 'boolean' ||\n typeof mode.staysActiveInBackground !== 'boolean' ||\n typeof mode.shouldDuckAndroid !== 'boolean' ||\n typeof mode.playThroughEarpieceAndroid !== 'boolean'\n ) {\n throw new Error(\n '\"allowsRecordingIOS\", \"playsInSilentModeIOS\", \"playThroughEarpieceAndroid\", \"staysActiveInBackground\" and \"shouldDuckAndroid\" must be booleans.'\n );\n }\n currentAudioMode = mode;\n return await ExponentAV.setAudioMode(mode);\n}\n","import ExponentAV from '../ExponentAV';\n\nlet _enabled = true;\n\nexport function isAudioEnabled(): boolean {\n return _enabled;\n}\n\nexport function throwIfAudioIsDisabled(): void {\n if (!_enabled) {\n throw new Error('Cannot complete operation because audio is not enabled.');\n }\n}\n\n// @needsAudit\n/**\n * Audio is enabled by default, but if you want to write your own Audio API in a bare workflow app, you might want to disable the Audio API.\n * @param value `true` enables Audio, and `false` disables it.\n * @return A `Promise` that will reject if audio playback could not be enabled for the device.\n */\nexport async function setIsEnabledAsync(value: boolean): Promise {\n _enabled = value;\n await ExponentAV.setAudioIsEnabled(value);\n // TODO : We immediately pause all players when disabled, but we do not resume all shouldPlay\n // players when enabled. Perhaps for completeness we should allow this; the design of the\n // enabling API is for people to enable / disable this audio library, but I think that it should\n // intuitively also double as a global pause/resume.\n}\n","import type { RecordingOptions } from './Recording.types';\n\n// @docsMissing\nexport enum AndroidOutputFormat {\n DEFAULT = 0,\n THREE_GPP = 1,\n MPEG_4 = 2,\n AMR_NB = 3,\n AMR_WB = 4,\n AAC_ADIF = 5,\n AAC_ADTS = 6,\n RTP_AVP = 7,\n MPEG2TS = 8,\n WEBM = 9,\n}\n\n// @docsMissing\nexport enum AndroidAudioEncoder {\n DEFAULT = 0,\n AMR_NB = 1,\n AMR_WB = 2,\n AAC = 3,\n HE_AAC = 4,\n AAC_ELD = 5,\n}\n\n// @docsMissing\n/**\n * > **Note** Not all of the iOS formats included in this list of constants are currently supported by iOS,\n * > in spite of appearing in the Apple source code. For an accurate list of formats supported by iOS, see\n * > [Core Audio Codecs](https://developer.apple.com/library/content/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioEssentials/CoreAudioEssentials.html)\n * > and [iPhone Audio File Formats](https://developer.apple.com/library/content/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioEssentials/CoreAudioEssentials.html).\n */\nexport enum IOSOutputFormat {\n LINEARPCM = 'lpcm',\n AC3 = 'ac-3',\n '60958AC3' = 'cac3',\n APPLEIMA4 = 'ima4',\n MPEG4AAC = 'aac ',\n MPEG4CELP = 'celp',\n MPEG4HVXC = 'hvxc',\n MPEG4TWINVQ = 'twvq',\n MACE3 = 'MAC3',\n MACE6 = 'MAC6',\n ULAW = 'ulaw',\n ALAW = 'alaw',\n QDESIGN = 'QDMC',\n QDESIGN2 = 'QDM2',\n QUALCOMM = 'Qclp',\n MPEGLAYER1 = '.mp1',\n MPEGLAYER2 = '.mp2',\n MPEGLAYER3 = '.mp3',\n APPLELOSSLESS = 'alac',\n MPEG4AAC_HE = 'aach',\n MPEG4AAC_LD = 'aacl',\n MPEG4AAC_ELD = 'aace',\n MPEG4AAC_ELD_SBR = 'aacf',\n MPEG4AAC_ELD_V2 = 'aacg',\n MPEG4AAC_HE_V2 = 'aacp',\n MPEG4AAC_SPATIAL = 'aacs',\n AMR = 'samr',\n AMR_WB = 'sawb',\n AUDIBLE = 'AUDB',\n ILBC = 'ilbc',\n DVIINTELIMA = 0x6d730011,\n MICROSOFTGSM = 0x6d730031,\n AES3 = 'aes3',\n ENHANCEDAC3 = 'ec-3',\n}\n\n// @docsMissing\nexport enum IOSAudioQuality {\n MIN = 0,\n LOW = 0x20,\n MEDIUM = 0x40,\n HIGH = 0x60,\n MAX = 0x7f,\n}\n\n// @docsMissing\nexport enum IOSBitRateStrategy {\n CONSTANT = 0,\n LONG_TERM_AVERAGE = 1,\n VARIABLE_CONSTRAINED = 2,\n VARIABLE = 3,\n}\n\n// TODO : maybe make presets for music and speech, or lossy / lossless.\n\nconst HIGH_QUALITY: RecordingOptions = {\n isMeteringEnabled: true,\n android: {\n extension: '.m4a',\n outputFormat: AndroidOutputFormat.MPEG_4,\n audioEncoder: AndroidAudioEncoder.AAC,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 128000,\n },\n ios: {\n extension: '.m4a',\n outputFormat: IOSOutputFormat.MPEG4AAC,\n audioQuality: IOSAudioQuality.MAX,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 128000,\n linearPCMBitDepth: 16,\n linearPCMIsBigEndian: false,\n linearPCMIsFloat: false,\n },\n web: {\n mimeType: 'audio/webm',\n bitsPerSecond: 128000,\n },\n};\n\nconst LOW_QUALITY: RecordingOptions = {\n isMeteringEnabled: true,\n android: {\n extension: '.3gp',\n outputFormat: AndroidOutputFormat.THREE_GPP,\n audioEncoder: AndroidAudioEncoder.AMR_NB,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 128000,\n },\n ios: {\n extension: '.m4a',\n audioQuality: IOSAudioQuality.MIN,\n outputFormat: IOSOutputFormat.MPEG4AAC,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 64000,\n linearPCMBitDepth: 16,\n linearPCMIsBigEndian: false,\n linearPCMIsFloat: false,\n },\n web: {\n mimeType: 'audio/webm',\n bitsPerSecond: 128000,\n },\n};\n\n/**\n * Constant which contains definitions of the two preset examples of `RecordingOptions`, as implemented in the Audio SDK.\n *\n * # `HIGH_QUALITY`\n * ```ts\n * RecordingOptionsPresets.HIGH_QUALITY = {\n * isMeteringEnabled: true,\n * android: {\n * extension: '.m4a',\n * outputFormat: AndroidOutputFormat.MPEG_4,\n * audioEncoder: AndroidAudioEncoder.AAC,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * },\n * ios: {\n * extension: '.m4a',\n * outputFormat: IOSOutputFormat.MPEG4AAC,\n * audioQuality: IOSAudioQuality.MAX,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * linearPCMBitDepth: 16,\n * linearPCMIsBigEndian: false,\n * linearPCMIsFloat: false,\n * },\n * web: {\n * mimeType: 'audio/webm',\n * bitsPerSecond: 128000,\n * },\n * };\n * ```\n *\n * # `LOW_QUALITY`\n * ```ts\n * RecordingOptionsPresets.LOW_QUALITY = {\n * isMeteringEnabled: true,\n * android: {\n * extension: '.3gp',\n * outputFormat: AndroidOutputFormat.THREE_GPP,\n * audioEncoder: AndroidAudioEncoder.AMR_NB,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * },\n * ios: {\n * extension: '.caf',\n * audioQuality: IOSAudioQuality.MIN,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * linearPCMBitDepth: 16,\n * linearPCMIsBigEndian: false,\n * linearPCMIsFloat: false,\n * },\n * web: {\n * mimeType: 'audio/webm',\n * bitsPerSecond: 128000,\n * },\n * };\n * ```\n */\nexport const RecordingOptionsPresets: Record = {\n HIGH_QUALITY,\n LOW_QUALITY,\n};\n","import { EventEmitter, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport { throwIfAudioIsDisabled } from './AudioAvailability';\nimport {\n Playback,\n PlaybackMixin,\n AVPlaybackSource,\n AVMetadata,\n AVPlaybackStatus,\n AVPlaybackStatusToSet,\n assertStatusValuesInBounds,\n getNativeSourceAndFullInitialStatusForLoadAsync,\n getUnloadedStatus,\n AVPlaybackTolerance,\n} from '../AV';\nimport { PitchCorrectionQuality } from '../Audio';\nimport ExponentAV from '../ExponentAV';\n\n// @needsAudit\nexport type AudioChannel = {\n /**\n * All samples for this specific Audio Channel in PCM Buffer format (-1 to 1).\n */\n frames: number[];\n};\n\n// @needsAudit\n/**\n * Object passed to the `onAudioSampleReceived` function. Represents a single sample from an audio source.\n * The sample contains all frames (PCM Buffer values) for each channel of the audio, so if the audio is _stereo_ (interleaved),\n * there will be two channels, one for left and one for right audio.\n */\nexport type AudioSample = {\n /**\n * An array representing the data from each channel in PCM Buffer format. Array elements are objects in the following format: `{ frames: number[] }`,\n * where each frame is a number in PCM Buffer format (`-1` to `1` range).\n */\n channels: AudioChannel[];\n /**\n * A number representing the timestamp of the current sample in seconds, relative to the audio track's timeline.\n * > **Known issue:** When using the `ExoPlayer` Android implementation, the timestamp is always `-1`.\n */\n timestamp: number;\n};\n\n// @needsAudit\nexport type SoundObject = {\n /**\n * The newly created and loaded `Sound` object.\n */\n sound: Sound;\n /**\n * The `PlaybackStatus` of the `Sound` object. See the [AV documentation](/versions/latest/sdk/av) for further information.\n */\n status: AVPlaybackStatus;\n};\n\ntype AudioInstance = number | HTMLMediaElement | null;\ntype AudioSampleCallback = ((sample: AudioSample) => void) | null;\n\ndeclare global {\n interface Global {\n __EXAV_setOnAudioSampleReceivedCallback:\n | ((key: number, callback: AudioSampleCallback) => void)\n | undefined;\n }\n}\n\n// @needsAudit\n/**\n * This class represents a sound corresponding to an Asset or URL.\n * @return A newly constructed instance of `Audio.Sound`.\n *\n * @example\n * ```ts\n * const sound = new Audio.Sound();\n * try {\n * await sound.loadAsync(require('./assets/sounds/hello.mp3'));\n * await sound.playAsync();\n * // Your sound is playing!\n *\n * // Don't forget to unload the sound from memory\n * // when you are done using the Sound object\n * await sound.unloadAsync();\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * > Method not described below and the rest of the API for `Audio.Sound` is the same as the imperative playback API for `Video`.\n * > See the [AV documentation](/versions/latest/sdk/av) for further information.\n */\nexport class Sound implements Playback {\n _loaded: boolean = false;\n _loading: boolean = false;\n _key: AudioInstance = null;\n _lastStatusUpdate: string | null = null;\n _lastStatusUpdateTime: Date | null = null;\n _subscriptions: { remove: () => void }[] = [];\n _eventEmitter: EventEmitter = new EventEmitter(ExponentAV);\n _coalesceStatusUpdatesInMillis: number = 100;\n _onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null;\n _onMetadataUpdate: ((metadata: AVMetadata) => void) | null = null;\n _onAudioSampleReceived: AudioSampleCallback = null;\n\n /** @deprecated Use `Sound.createAsync()` instead */\n static create = async (\n source: AVPlaybackSource,\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null,\n downloadFirst: boolean = true\n ): Promise => {\n console.warn(\n `Sound.create is deprecated in favor of Sound.createAsync with the same API except for the new method name`\n );\n return Sound.createAsync(source, initialStatus, onPlaybackStatusUpdate, downloadFirst);\n };\n\n /**\n * Creates and loads a sound from source.\n *\n * ```ts\n * const { sound } = await Audio.Sound.createAsync(\n * source,\n * initialStatus,\n * onPlaybackStatusUpdate,\n * downloadFirst\n * );\n *\n * // Which is equivalent to the following:\n * const sound = new Audio.Sound();\n * sound.setOnPlaybackStatusUpdate(onPlaybackStatusUpdate);\n * await sound.loadAsync(source, initialStatus, downloadFirst);\n * ```\n *\n * @param source The source of the sound. See the [AV documentation](/versions/latest/sdk/av/#playback-api) for details on the possible `source` values.\n *\n * @param initialStatus The initial intended `PlaybackStatusToSet` of the sound, whose values will override the default initial playback status.\n * This value defaults to `{}` if no parameter is passed. See the [AV documentation](/versions/latest/sdk/av) for details on `PlaybackStatusToSet` and the default\n * initial playback status.\n *\n * @param onPlaybackStatusUpdate A function taking a single parameter `PlaybackStatus`. This value defaults to `null` if no parameter is passed.\n * See the [AV documentation](/versions/latest/sdk/av) for details on the functionality provided by `onPlaybackStatusUpdate`\n *\n * @param downloadFirst If set to true, the system will attempt to download the resource to the device before loading. This value defaults to `true`.\n * Note that at the moment, this will only work for `source`s of the form `require('path/to/file')` or `Asset` objects.\n *\n * @example\n * ```ts\n * try {\n * const { sound: soundObject, status } = await Audio.Sound.createAsync(\n * require('./assets/sounds/hello.mp3'),\n * { shouldPlay: true }\n * );\n * // Your sound is playing!\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * @return A `Promise` that is rejected if creation failed, or fulfilled with the `SoundObject` if creation succeeded.\n */\n static createAsync = async (\n source: AVPlaybackSource,\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null,\n downloadFirst: boolean = true\n ): Promise => {\n const sound: Sound = new Sound();\n sound.setOnPlaybackStatusUpdate(onPlaybackStatusUpdate);\n const status: AVPlaybackStatus = await sound.loadAsync(source, initialStatus, downloadFirst);\n return { sound, status };\n };\n\n // Internal methods\n\n _callOnPlaybackStatusUpdateForNewStatus(status: AVPlaybackStatus) {\n const shouldDismissBasedOnCoalescing =\n this._lastStatusUpdateTime &&\n JSON.stringify(status) === this._lastStatusUpdate &&\n Date.now() - this._lastStatusUpdateTime.getTime() < this._coalesceStatusUpdatesInMillis;\n\n if (this._onPlaybackStatusUpdate != null && !shouldDismissBasedOnCoalescing) {\n this._onPlaybackStatusUpdate(status);\n this._lastStatusUpdateTime = new Date();\n this._lastStatusUpdate = JSON.stringify(status);\n }\n }\n\n async _performOperationAndHandleStatusAsync(\n operation: () => Promise\n ): Promise {\n throwIfAudioIsDisabled();\n if (this._loaded) {\n const status = await operation();\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n return status;\n } else {\n throw new Error('Cannot complete operation because sound is not loaded.');\n }\n }\n\n private _updateAudioSampleReceivedCallback() {\n if (globalThis.__EXAV_setOnAudioSampleReceivedCallback == null) {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n console.warn(\n 'expo-av: Failed to set up Audio Sample Buffer callback. ' +\n \"Do you have 'Remote Debugging' enabled in your app's Developer Menu (https://docs.expo.dev/workflow/debugging)? \" +\n 'Audio Sample Buffer callbacks are not supported while using Remote Debugging, you will need to disable it to use them.'\n );\n return;\n } else {\n throw new UnavailabilityError('expo-av', 'setOnAudioSampleReceived');\n }\n }\n if (this._key == null) {\n throw new Error(\n 'Cannot set Audio Sample Buffer callback when the Sound instance has not been successfully loaded/initialized!'\n );\n }\n if (typeof this._key !== 'number') {\n throw new Error(\n `Cannot set Audio Sample Buffer callback when Sound instance key is of type ${typeof this\n ._key}! (expected: number)`\n );\n }\n\n globalThis.__EXAV_setOnAudioSampleReceivedCallback(this._key, this._onAudioSampleReceived);\n }\n\n _internalStatusUpdateCallback = ({\n key,\n status,\n }: {\n key: AudioInstance;\n status: AVPlaybackStatus;\n }) => {\n if (this._key === key) {\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n }\n };\n\n _internalMetadataUpdateCallback = ({\n key,\n metadata,\n }: {\n key: AudioInstance;\n metadata: AVMetadata;\n }) => {\n if (this._key === key) {\n this._onMetadataUpdate?.(metadata);\n }\n };\n\n _internalErrorCallback = ({ key, error }: { key: AudioInstance; error: string }) => {\n if (this._key === key) {\n this._errorCallback(error);\n }\n };\n\n // TODO: We can optimize by only using time observer on native if (this._onPlaybackStatusUpdate).\n _subscribeToNativeEvents() {\n if (this._loaded) {\n this._subscriptions.push(\n this._eventEmitter.addListener(\n 'didUpdatePlaybackStatus',\n this._internalStatusUpdateCallback\n ),\n this._eventEmitter.addListener('didUpdateMetadata', this._internalMetadataUpdateCallback)\n );\n\n this._subscriptions.push(\n this._eventEmitter.addListener('ExponentAV.onError', this._internalErrorCallback)\n );\n }\n }\n\n _clearSubscriptions() {\n this._subscriptions.forEach((e) => e.remove());\n this._subscriptions = [];\n }\n\n _errorCallback = (error: string) => {\n this._clearSubscriptions();\n this._loaded = false;\n this._key = null;\n this._callOnPlaybackStatusUpdateForNewStatus(getUnloadedStatus(error));\n };\n\n // ### Unified playback API ### (consistent with Video.js)\n // All calls automatically call onPlaybackStatusUpdate as a side effect.\n\n // Get status API\n\n getStatusAsync = async (): Promise => {\n if (this._loaded) {\n return this._performOperationAndHandleStatusAsync(() =>\n ExponentAV.getStatusForSound(this._key)\n );\n }\n const status: AVPlaybackStatus = getUnloadedStatus();\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n return status;\n };\n\n /**\n * Sets a function to be called regularly with the `AVPlaybackStatus` of the playback object.\n *\n * `onPlaybackStatusUpdate` will be called whenever a call to the API for this playback object completes\n * (such as `setStatusAsync()`, `getStatusAsync()`, or `unloadAsync()`), nd will also be called at regular intervals\n * while the media is in the loaded state.\n *\n * Set `progressUpdateIntervalMillis` via `setStatusAsync()` or `setProgressUpdateIntervalAsync()` to modify\n * the interval with which `onPlaybackStatusUpdate` is called while loaded.\n *\n * @param onPlaybackStatusUpdate A function taking a single parameter `AVPlaybackStatus`.\n */\n setOnPlaybackStatusUpdate(onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null) {\n this._onPlaybackStatusUpdate = onPlaybackStatusUpdate;\n this.getStatusAsync();\n }\n\n /**\n * Sets a function to be called whenever the metadata of the sound object changes, if one is set.\n * @param onMetadataUpdate A function taking a single object of type `AVMetadata` as a parameter.\n * @platform ios\n */\n setOnMetadataUpdate(onMetadataUpdate: (metadata: AVMetadata) => void) {\n this._onMetadataUpdate = onMetadataUpdate;\n }\n\n /**\n * Sets a function to be called during playback, receiving the audio sample as parameter.\n * @param callback A function taking the `AudioSampleCallback` as parameter.\n */\n setOnAudioSampleReceived(callback: AudioSampleCallback) {\n this._onAudioSampleReceived = callback;\n if (this._key != null) {\n this._updateAudioSampleReceivedCallback();\n }\n }\n\n // Loading / unloading API\n\n async loadAsync(\n source: AVPlaybackSource,\n initialStatus: AVPlaybackStatusToSet = {},\n downloadFirst: boolean = true\n ): Promise {\n throwIfAudioIsDisabled();\n if (this._loading) {\n throw new Error('The Sound is already loading.');\n }\n if (!this._loaded) {\n this._loading = true;\n\n const { nativeSource, fullInitialStatus } =\n await getNativeSourceAndFullInitialStatusForLoadAsync(source, initialStatus, downloadFirst);\n\n // This is a workaround, since using load with resolve / reject seems to not work.\n return new Promise((resolve, reject) => {\n const loadSuccess = (result: [AudioInstance, AVPlaybackStatus]) => {\n const [key, status] = result;\n this._key = key;\n this._loaded = true;\n this._loading = false;\n this._subscribeToNativeEvents();\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n resolve(status);\n };\n\n const loadError = (error: Error) => {\n this._loading = false;\n reject(error);\n };\n\n ExponentAV.loadForSound(nativeSource, fullInitialStatus).then(loadSuccess).catch(loadError);\n });\n } else {\n throw new Error('The Sound is already loaded.');\n }\n }\n\n async unloadAsync(): Promise {\n if (this._loaded) {\n this._loaded = false;\n const key = this._key;\n this._key = null;\n const status = await ExponentAV.unloadForSound(key);\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n this._clearSubscriptions();\n return status;\n } else {\n return this.getStatusAsync(); // Automatically calls onPlaybackStatusUpdate.\n }\n }\n\n // Set status API (only available while isLoaded = true)\n\n async setStatusAsync(status: AVPlaybackStatusToSet): Promise {\n assertStatusValuesInBounds(status);\n return this._performOperationAndHandleStatusAsync(() =>\n ExponentAV.setStatusForSound(this._key, status)\n );\n }\n\n async replayAsync(status: AVPlaybackStatusToSet = {}): Promise {\n if (status.positionMillis && status.positionMillis !== 0) {\n throw new Error('Requested position after replay has to be 0.');\n }\n\n return this._performOperationAndHandleStatusAsync(() =>\n ExponentAV.replaySound(this._key, {\n ...status,\n positionMillis: 0,\n shouldPlay: true,\n })\n );\n }\n\n // Methods of the Playback interface that are set via PlaybackMixin\n playAsync!: () => Promise;\n playFromPositionAsync!: (\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ) => Promise;\n pauseAsync!: () => Promise;\n stopAsync!: () => Promise;\n setPositionAsync!: (\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ) => Promise;\n setRateAsync!: (\n rate: number,\n shouldCorrectPitch: boolean,\n pitchCorrectionQuality?: PitchCorrectionQuality\n ) => Promise;\n setVolumeAsync!: (volume: number, audioPan?: number) => Promise;\n setIsMutedAsync!: (isMuted: boolean) => Promise;\n setIsLoopingAsync!: (isLooping: boolean) => Promise;\n setProgressUpdateIntervalAsync!: (\n progressUpdateIntervalMillis: number\n ) => Promise;\n}\n\nObject.assign(Sound.prototype, PlaybackMixin);\n","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\n'use strict';\n\nfunction f(s: number, x: number, y: number, z: number) {\n switch (s) {\n case 0:\n return (x & y) ^ (~x & z);\n case 1:\n return x ^ y ^ z;\n case 2:\n return (x & y) ^ (x & z) ^ (y & z);\n case 3:\n return x ^ y ^ z;\n default:\n return 0;\n }\n}\n\nfunction ROTL(x: number, n: number) {\n return (x << n) | (x >>> (32 - n));\n}\n\nfunction sha1(bytes: number[] | string) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n bytes = new Array(msg.length);\n for (let i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; i++) {\n M[i] = new Array(16);\n for (let j = 0; j < 16; j++) {\n M[i][j] =\n (bytes[i * 64 + j * 4] << 24) |\n (bytes[i * 64 + j * 4 + 1] << 16) |\n (bytes[i * 64 + j * 4 + 2] << 8) |\n bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = ((bytes.length - 1) * 8) / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff;\n\n for (let i = 0; i < N; i++) {\n const W = new Array(80);\n\n for (let t = 0; t < 16; t++) W[t] = M[i][t];\n for (let t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; t++) {\n const s = Math.floor(t / 20);\n const T = (ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t]) >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n }\n\n return [\n (H[0] >> 24) & 0xff,\n (H[0] >> 16) & 0xff,\n (H[0] >> 8) & 0xff,\n H[0] & 0xff,\n (H[1] >> 24) & 0xff,\n (H[1] >> 16) & 0xff,\n (H[1] >> 8) & 0xff,\n H[1] & 0xff,\n (H[2] >> 24) & 0xff,\n (H[2] >> 16) & 0xff,\n (H[2] >> 8) & 0xff,\n H[2] & 0xff,\n (H[3] >> 24) & 0xff,\n (H[3] >> 16) & 0xff,\n (H[3] >> 8) & 0xff,\n H[3] & 0xff,\n (H[4] >> 24) & 0xff,\n (H[4] >> 16) & 0xff,\n (H[4] >> 8) & 0xff,\n H[4] & 0xff,\n ];\n}\n\nexport default sha1;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex: string[] = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf: number[], offset?: number) {\n let i = offset || 0;\n const bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n ].join('');\n}\n\nexport default bytesToUuid;\n","/**\n * Collection of utilities used for generating Universally Unique Identifiers.\n */\nexport type UUID = {\n /**\n * A UUID generated randomly.\n */\n v4: () => string;\n /**\n * A UUID generated based on the `value` and `namespace` parameters, which always produces the same result for the same inputs.\n */\n v5: (name: string, namespace: string | number[]) => string;\n namespace: typeof Uuidv5Namespace;\n};\n\n/**\n * Default namespaces for UUID v5 defined in RFC 4122\n */\nexport enum Uuidv5Namespace {\n // Source of the UUIDs: https://datatracker.ietf.org/doc/html/rfc4122\n dns = '6ba7b810-9dad-11d1-80b4-00c04fd430c8',\n url = '6ba7b811-9dad-11d1-80b4-00c04fd430c8',\n oid = '6ba7b812-9dad-11d1-80b4-00c04fd430c8',\n x500 = '6ba7b814-9dad-11d1-80b4-00c04fd430c8',\n}\n","import bytesToUuid from './bytesToUuid';\n\nfunction uuidToBytes(uuid: string) {\n // Note: We assume we're being passed a valid uuid string\n const bytes: number[] = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, (hex: string) => {\n bytes.push(parseInt(hex, 16));\n return '';\n });\n\n return bytes;\n}\n\nfunction stringToBytes(str: string) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n const bytes: number[] = new Array(str.length);\n for (let i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n return bytes;\n}\n\nexport default function (\n name: string,\n version: number,\n hashfunc: (bytes: number[] | string) => number[]\n) {\n const generateUUID = function (\n value: number[] | string,\n namespace: number[] | string,\n buf?: number[],\n offset?: number\n ): string {\n const off = (buf && offset) || 0;\n\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16)\n throw TypeError('namespace must be uuid string or an Array of 16 byte values');\n\n // Per 4.3\n const bytes = hashfunc(namespace.concat(value));\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n for (let idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return bytesToUuid(bytes);\n };\n\n // Function#name is not settable on some platforms (#270)\n try {\n generateUUID.name = name;\n } catch {}\n\n // Pre-defined namespaces, per Appendix C\n generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\n generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\n return generateUUID;\n}\n","import sha1 from './lib/sha1';\nimport v35 from './lib/v35';\nimport { UUID, Uuidv5Namespace } from './uuid.types';\n\nfunction uuidv4(): string {\n // Crypto needs to be required when run in Node.js environment.\n const cryptoObject =\n typeof crypto === 'undefined' || typeof crypto.randomUUID === 'undefined'\n ? require('crypto')\n : crypto;\n\n if (!cryptoObject?.randomUUID) {\n throw Error(\"The browser doesn't support `crypto.randomUUID` function\");\n }\n return cryptoObject.randomUUID();\n}\n\nconst uuid: UUID = {\n v4: uuidv4,\n v5: v35('v5', 0x50, sha1),\n namespace: Uuidv5Namespace,\n};\n\nexport default uuid;\n","import { DeviceEventEmitter } from 'react-native';\n\nimport { EventEmitter, Subscription } from './EventEmitter';\nimport NativeModulesProxy from './NativeModulesProxy';\nimport { ProxyNativeModule } from './NativeModulesProxy.types';\nimport { requireNativeViewManager } from './NativeViewManagerAdapter';\nimport Platform from './Platform';\nimport { CodedError } from './errors/CodedError';\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nimport './sweet/setUpErrorManager.fx';\n\nexport { default as uuid } from './uuid';\n\nexport {\n DeviceEventEmitter,\n EventEmitter,\n NativeModulesProxy,\n ProxyNativeModule,\n Platform,\n Subscription,\n requireNativeViewManager,\n // Errors\n CodedError,\n UnavailabilityError,\n};\n\nexport * from './requireNativeModule';\nexport * from './TypedArrays.types';\n\n/**\n * @deprecated renamed to `DeviceEventEmitter`\n */\nexport const SyntheticPlatformEmitter = DeviceEventEmitter;\n\nexport * from './PermissionsInterface';\nexport * from './PermissionsHook';\n","import { PermissionResponse, PermissionStatus, SyntheticPlatformEmitter } from 'expo-modules-core';\n\nimport type { AVPlaybackNativeSource, AVPlaybackStatus, AVPlaybackStatusToSet } from './AV.types';\nimport type { RecordingStatus } from './Audio/Recording.types';\nimport { RecordingOptionsPresets } from './Audio/RecordingConstants';\n\nasync function getPermissionWithQueryAsync(\n name: PermissionNameWithAdditionalValues\n): Promise {\n if (!navigator || !navigator.permissions || !navigator.permissions.query) return null;\n\n try {\n const { state } = await navigator.permissions.query({ name });\n switch (state) {\n case 'granted':\n return PermissionStatus.GRANTED;\n case 'denied':\n return PermissionStatus.DENIED;\n default:\n return PermissionStatus.UNDETERMINED;\n }\n } catch {\n // Firefox - TypeError: 'microphone' (value of 'name' member of PermissionDescriptor) is not a valid value for enumeration PermissionName.\n return PermissionStatus.UNDETERMINED;\n }\n}\n\nfunction getUserMedia(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n // Some browsers partially implement mediaDevices. We can't just assign an object\n // with getUserMedia as it would overwrite existing properties.\n // Here, we will just add the getUserMedia property if it's missing.\n\n // First get ahold of the legacy getUserMedia, if present\n const getUserMedia =\n // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n function () {\n const error: any = new Error('Permission unimplemented');\n error.code = 0;\n error.name = 'NotAllowedError';\n throw error;\n };\n\n return new Promise((resolve, reject) => {\n getUserMedia.call(navigator, constraints, resolve, reject);\n });\n}\n\nfunction getStatusFromMedia(media?: HTMLMediaElement): AVPlaybackStatus {\n if (!media) {\n return {\n isLoaded: false,\n error: undefined,\n };\n }\n\n const isPlaying = !!(\n media.currentTime > 0 &&\n !media.paused &&\n !media.ended &&\n media.readyState > 2\n );\n\n const status: AVPlaybackStatus = {\n isLoaded: true,\n uri: media.src,\n progressUpdateIntervalMillis: 100, //TODO: Bacon: Add interval between calls\n durationMillis: media.duration * 1000,\n positionMillis: media.currentTime * 1000,\n // playableDurationMillis: media.buffered * 1000,\n // seekMillisToleranceBefore?: number\n // seekMillisToleranceAfter?: number\n shouldPlay: media.autoplay,\n isPlaying,\n isBuffering: false, //media.waiting,\n rate: media.playbackRate,\n // TODO: Bacon: This seems too complicated right now: https://webaudio.github.io/web-audio-api/#dom-biquadfilternode-frequency\n shouldCorrectPitch: false,\n volume: media.volume,\n audioPan: 0,\n isMuted: media.muted,\n isLooping: media.loop,\n didJustFinish: media.ended,\n };\n\n return status;\n}\n\nasync function setStatusForMedia(\n media: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n): Promise {\n if (status.positionMillis !== undefined) {\n media.currentTime = status.positionMillis / 1000;\n }\n // if (status.progressUpdateIntervalMillis !== undefined) {\n // media.progressUpdateIntervalMillis = status.progressUpdateIntervalMillis;\n // }\n // if (status.seekMillisToleranceBefore !== undefined) {\n // media.seekMillisToleranceBefore = status.seekMillisToleranceBefore;\n // }\n // if (status.seekMillisToleranceAfter !== undefined) {\n // media.seekMillisToleranceAfter = status.seekMillisToleranceAfter;\n // }\n // if (status.shouldCorrectPitch !== undefined) {\n // media.shouldCorrectPitch = status.shouldCorrectPitch;\n // }\n if (status.shouldPlay !== undefined) {\n if (status.shouldPlay) {\n await media.play();\n } else {\n await media.pause();\n }\n }\n if (status.rate !== undefined) {\n media.playbackRate = status.rate;\n }\n if (status.volume !== undefined) {\n media.volume = status.volume;\n }\n if (status.isMuted !== undefined) {\n media.muted = status.isMuted;\n }\n if (status.isLooping !== undefined) {\n media.loop = status.isLooping;\n }\n\n return getStatusFromMedia(media);\n}\n\nlet mediaRecorder: null | any /*MediaRecorder*/ = null;\nlet mediaRecorderUptimeOfLastStartResume: number = 0;\nlet mediaRecorderDurationAlreadyRecorded: number = 0;\nlet mediaRecorderIsRecording: boolean = false;\n\nfunction getAudioRecorderDurationMillis() {\n let duration = mediaRecorderDurationAlreadyRecorded;\n if (mediaRecorderIsRecording && mediaRecorderUptimeOfLastStartResume > 0) {\n duration += Date.now() - mediaRecorderUptimeOfLastStartResume;\n }\n return duration;\n}\n\nexport default {\n get name(): string {\n return 'ExponentAV';\n },\n async getStatusForVideo(element: HTMLMediaElement): Promise {\n return getStatusFromMedia(element);\n },\n async loadForVideo(\n element: HTMLMediaElement,\n nativeSource: AVPlaybackNativeSource,\n fullInitialStatus: AVPlaybackStatusToSet\n ): Promise {\n return getStatusFromMedia(element);\n },\n async unloadForVideo(element: HTMLMediaElement): Promise {\n return getStatusFromMedia(element);\n },\n async setStatusForVideo(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n async replayVideo(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n /* Audio */\n async setAudioMode() {},\n async setAudioIsEnabled() {},\n async getStatusForSound(element: HTMLMediaElement) {\n return getStatusFromMedia(element);\n },\n async loadForSound(\n nativeSource: string | { uri: string; [key: string]: any },\n fullInitialStatus: AVPlaybackStatusToSet\n ): Promise<[HTMLMediaElement, AVPlaybackStatus]> {\n const source = typeof nativeSource === 'string' ? nativeSource : nativeSource.uri;\n const media = new Audio(source);\n\n media.ontimeupdate = () => {\n SyntheticPlatformEmitter.emit('didUpdatePlaybackStatus', {\n key: media,\n status: getStatusFromMedia(media),\n });\n };\n\n media.onerror = () => {\n SyntheticPlatformEmitter.emit('ExponentAV.onError', {\n key: media,\n error: media.error!.message,\n });\n };\n\n const status = await setStatusForMedia(media, fullInitialStatus);\n\n return [media, status];\n },\n async unloadForSound(element: HTMLMediaElement) {\n element.pause();\n element.removeAttribute('src');\n element.load();\n return getStatusFromMedia(element);\n },\n async setStatusForSound(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n async replaySound(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n\n /* Recording */\n // async setUnloadedCallbackForAndroidRecording() {},\n async getAudioRecordingStatus(): Promise {\n return {\n canRecord: mediaRecorder?.state === 'recording' || mediaRecorder?.state === 'inactive',\n isRecording: mediaRecorder?.state === 'recording',\n isDoneRecording: false,\n durationMillis: getAudioRecorderDurationMillis(),\n uri: null,\n };\n },\n async prepareAudioRecorder(options): Promise<{\n uri: string | null;\n // status is of type RecordingStatus, but without the canRecord field populated\n status: Pick>;\n }> {\n if (typeof navigator !== 'undefined' && !navigator.mediaDevices) {\n throw new Error('No media devices available');\n }\n\n mediaRecorderUptimeOfLastStartResume = 0;\n mediaRecorderDurationAlreadyRecorded = 0;\n\n const stream = await getUserMedia({ audio: true });\n\n mediaRecorder = new (window as any).MediaRecorder(\n stream,\n options?.web || RecordingOptionsPresets.HIGH_QUALITY.web\n );\n\n mediaRecorder.addEventListener('pause', () => {\n mediaRecorderDurationAlreadyRecorded = getAudioRecorderDurationMillis();\n mediaRecorderIsRecording = false;\n });\n\n mediaRecorder.addEventListener('resume', () => {\n mediaRecorderUptimeOfLastStartResume = Date.now();\n mediaRecorderIsRecording = true;\n });\n\n mediaRecorder.addEventListener('start', () => {\n mediaRecorderUptimeOfLastStartResume = Date.now();\n mediaRecorderDurationAlreadyRecorded = 0;\n mediaRecorderIsRecording = true;\n });\n\n mediaRecorder.addEventListener('stop', () => {\n mediaRecorderDurationAlreadyRecorded = getAudioRecorderDurationMillis();\n mediaRecorderIsRecording = false;\n\n // Clears recording icon in Chrome tab\n stream.getTracks().forEach((track) => track.stop());\n });\n\n const { uri, ...status } = await this.getAudioRecordingStatus();\n\n return { uri: null, status };\n },\n async startAudioRecording(): Promise {\n if (mediaRecorder === null) {\n throw new Error(\n 'Cannot start an audio recording without initializing a MediaRecorder. Run prepareToRecordAsync() before attempting to start an audio recording.'\n );\n }\n\n if (mediaRecorder.state === 'paused') {\n mediaRecorder.resume();\n } else {\n mediaRecorder.start();\n }\n\n return this.getAudioRecordingStatus();\n },\n async pauseAudioRecording(): Promise {\n if (mediaRecorder === null) {\n throw new Error(\n 'Cannot start an audio recording without initializing a MediaRecorder. Run prepareToRecordAsync() before attempting to start an audio recording.'\n );\n }\n\n // Set status to paused\n mediaRecorder.pause();\n\n return this.getAudioRecordingStatus();\n },\n async stopAudioRecording(): Promise {\n if (mediaRecorder === null) {\n throw new Error(\n 'Cannot start an audio recording without initializing a MediaRecorder. Run prepareToRecordAsync() before attempting to start an audio recording.'\n );\n }\n\n if (mediaRecorder.state === 'inactive') {\n return this.getAudioRecordingStatus();\n }\n\n const dataPromise = new Promise((resolve) =>\n mediaRecorder.addEventListener('dataavailable', (e) => resolve(e.data))\n );\n\n mediaRecorder.stop();\n\n const data = await dataPromise;\n const url = URL.createObjectURL(data);\n\n return {\n ...(await this.getAudioRecordingStatus()),\n uri: url,\n };\n },\n async unloadAudioRecorder(): Promise {\n mediaRecorder = null;\n },\n\n async getPermissionsAsync(): Promise {\n const maybeStatus = await getPermissionWithQueryAsync('microphone');\n switch (maybeStatus) {\n case PermissionStatus.GRANTED:\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n case PermissionStatus.DENIED:\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n default:\n return await this.requestPermissionsAsync();\n }\n },\n async requestPermissionsAsync(): Promise {\n try {\n const stream = await getUserMedia({ audio: true });\n stream.getTracks().forEach((track) => track.stop());\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch {\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n },\n};\n","import { Asset } from 'expo-asset';\n\n// @needsAudit\n/**\n * The different types of assets you can provide to the [`loadAsync()`](#loadAsync) function.\n * A font source can be a URI, a module ID, or an Expo Asset.\n */\nexport type FontSource = string | number | Asset | FontResource;\n\n// @needsAudit\n/**\n * An object used to dictate the resource that is loaded into the provided font namespace when used\n * with [`loadAsync`](#loadasync).\n */\nexport type FontResource = {\n uri?: string | number;\n /**\n * Sets the [`font-display`](#fontdisplay) property for a given typeface in the browser.\n * @platform web\n */\n display?: FontDisplay;\n default?: string;\n};\n\n// @needsAudit\n/**\n * Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n * @platform web\n */\nexport enum FontDisplay {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n AUTO = 'auto',\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n SWAP = 'swap',\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n BLOCK = 'block',\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FALLBACK = 'fallback',\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n OPTIONAL = 'optional',\n}\n\n// @needsAudit\n/**\n * Object used to query fonts for unloading.\n */\nexport type UnloadFontOptions = Pick;\n","import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nconst serverContext: Set<{ name: string; css: string; resourceId: string }> = new Set();\n\nfunction getHeadElements(): {\n $$type: string;\n rel?: string;\n href?: string;\n as?: string;\n crossorigin?: string;\n children?: string;\n id?: string;\n type?: string;\n}[] {\n const entries = [...serverContext.entries()];\n if (!entries.length) {\n return [];\n }\n const css = entries.map(([{ css }]) => css).join('\\n');\n const links = entries.map(([{ resourceId }]) => resourceId);\n // TODO: Maybe return nothing if no fonts were loaded.\n return [\n {\n $$type: 'style',\n children: css,\n id: ID,\n type: 'text/css',\n },\n ...links.map((resourceId) => ({\n $$type: 'link',\n rel: 'preload',\n href: resourceId,\n as: 'font',\n crossorigin: '',\n })),\n ];\n}\n\nexport default {\n get name(): string {\n return 'ExpoFontLoader';\n },\n\n async unloadAllAsync(): Promise {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n getServerResources(): string[] {\n const elements = getHeadElements();\n\n return elements\n .map((element) => {\n switch (element.$$type) {\n case 'style':\n return ``;\n case 'link':\n return ``;\n default:\n return '';\n }\n })\n .filter(Boolean);\n },\n\n resetServerContext() {\n serverContext.clear();\n },\n\n isLoaded(fontFamilyName: string, resource: UnloadFontOptions = {}): boolean {\n if (typeof window === 'undefined') {\n return !![...serverContext.values()].find((asset) => {\n return asset.name === fontFamilyName;\n });\n }\n return getFontFaceRulesMatchingResource(fontFamilyName, resource)?.length > 0;\n },\n\n // NOTE(EvanBacon): No async keyword! This cannot return a promise in Node environments.\n loadAsync(fontFamilyName: string, resource: FontResource): Promise {\n if (typeof window === 'undefined') {\n serverContext.add({\n name: fontFamilyName,\n css: _createWebFontTemplate(fontFamilyName, resource),\n // @ts-expect-error: typeof string\n resourceId: resource.uri!,\n });\n return Promise.resolve();\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = getStyleElement();\n document.head!.appendChild(style);\n\n const res = getFontFaceRulesMatchingResource(fontFamilyName, resource);\n if (!res.length) {\n _createWebStyle(fontFamilyName, resource);\n }\n\n if (!isFontLoadingListenerSupported()) {\n return Promise.resolve();\n }\n\n return new FontObserver(fontFamilyName, { display: resource.display }).load(null, 6000);\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nexport function _createWebFontTemplate(fontFamily: string, resource: FontResource): string {\n return `@font-face{font-family:${fontFamily};src:url(${resource.uri});font-display:${\n resource.display || FontDisplay.AUTO\n }}`;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = _createWebFontTemplate(fontFamily, resource);\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n","import { Asset } from 'expo-asset';\nimport { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontResource, FontSource, FontDisplay } from './Font.types';\n\nfunction uriFromFontSource(asset: any): string | null {\n if (typeof asset === 'string') {\n return asset || null;\n } else if (typeof asset === 'object') {\n return asset.uri || asset.localUri || asset.default || null;\n } else if (typeof asset === 'number') {\n return uriFromFontSource(Asset.fromModule(asset));\n }\n return null;\n}\n\nfunction displayFromFontSource(asset: any): FontDisplay | undefined {\n return asset.display || FontDisplay.AUTO;\n}\n\nexport function fontFamilyNeedsScoping(name: string): boolean {\n return false;\n}\n\nexport function getAssetForSource(source: FontSource): Asset | FontResource {\n const uri = uriFromFontSource(source);\n const display = displayFromFontSource(source);\n\n if (!uri || typeof uri !== 'string') {\n throwInvalidSourceError(uri);\n }\n\n return {\n uri: uri!,\n display,\n };\n}\n\nfunction throwInvalidSourceError(source: any): never {\n let type: string = typeof source;\n if (type === 'object') type = JSON.stringify(source, null, 2);\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Expected font asset of type \\`string | FontResource | Asset\\` instead got: ${type}`\n );\n}\n\n// NOTE(EvanBacon): No async keyword!\nexport function loadSingleFontAsync(name: string, input: Asset | FontResource): Promise {\n if (typeof input !== 'object' || typeof input.uri !== 'string' || (input as any).downloadAsync) {\n throwInvalidSourceError(input);\n }\n\n try {\n return ExpoFontLoader.loadAsync(name, input);\n } catch {\n // No-op.\n }\n\n return Promise.resolve();\n}\n\nexport function getNativeFontName(name: string): string {\n return name;\n}\n","export const loaded: { [name: string]: boolean } = {};\nexport const loadPromises: { [name: string]: Promise } = {};\n","import { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontSource } from './Font.types';\nimport { getAssetForSource, loadSingleFontAsync } from './FontLoader';\n\n/**\n * @returns the server resources that should be statically extracted.\n * @private\n */\nexport function getServerResources(): string[] {\n return ExpoFontLoader.getServerResources();\n}\n\n/**\n * @returns clear the server resources from the global scope.\n * @private\n */\nexport function resetServerContext() {\n return ExpoFontLoader.resetServerContext();\n}\n\nexport function registerStaticFont(fontFamily: string, source?: FontSource | null) {\n // MUST BE A SYNC FUNCTION!\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n const asset = getAssetForSource(source);\n\n loadSingleFontAsync(fontFamily, asset);\n}\n","import { CodedError, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n getAssetForSource,\n loadSingleFontAsync,\n fontFamilyNeedsScoping,\n getNativeFontName,\n} from './FontLoader';\nimport { loaded, loadPromises } from './memory';\nimport { registerStaticFont } from './server';\n\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.dev/archive/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.warn(\n `You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`\n );\n } else {\n console.warn(\n `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through expo-font.`\n );\n }\n }\n }\n\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n if (Platform.OS === 'web') {\n return fontFamily in loaded || !!ExpoFontLoader.isLoaded(fontFamily);\n }\n return fontFamily in loaded || ExpoFontLoader.customNativeFonts?.includes(fontFamily);\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n return fontFamily in loadPromises;\n}\n\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport function loadAsync(\n fontFamilyOrFontMap: string | Record,\n source?: FontSource\n): Promise {\n // NOTE(EvanBacon): Static render pass on web must be synchronous to collect all fonts.\n // Because of this, `loadAsync` doesn't use the `async` keyword and deviates from the\n // standard Expo SDK style guide.\n const isServer = Platform.OS === 'web' && typeof window === 'undefined';\n\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n return Promise.reject(\n new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n )\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n\n if (isServer) {\n names.map((name) => registerStaticFont(name, fontMap[name]));\n return Promise.resolve();\n }\n\n return Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name]))).then(\n () => {}\n );\n }\n\n if (isServer) {\n registerStaticFont(fontFamilyOrFontMap, source);\n return Promise.resolve();\n }\n\n return loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n fontFamily: string,\n source?: FontSource | null\n): Promise {\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n\n if (loaded[fontFamily]) {\n return;\n }\n\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n } finally {\n delete loadPromises[fontFamily];\n }\n })();\n\n await loadPromises[fontFamily];\n}\n\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n\n if (Object.keys(loadPromises).length) {\n throw new CodedError(\n `ERR_UNLOAD`,\n `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n );\n }\n\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n\n await ExpoFontLoader.unloadAllAsync();\n}\n\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(\n fontFamilyOrFontMap: string | Record,\n options?: UnloadFontOptions\n): Promise {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n fontFamily: string,\n options?: UnloadFontOptions | null\n): Promise {\n if (!loaded[fontFamily]) {\n return;\n } else {\n delete loaded[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const nativeFontName = getNativeFontName(fontFamily);\n\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n","import { useEffect, useState } from 'react';\n\nimport { loadAsync, isLoaded } from './Font';\nimport { FontSource } from './Font.types';\n\nfunction isMapLoaded(map: string | Record) {\n if (typeof map === 'string') {\n return isLoaded(map);\n } else {\n return Object.keys(map).every((fontFamily) => isLoaded(fontFamily));\n }\n}\n\nfunction useRuntimeFonts(map: string | Record): [boolean, Error | null] {\n const [loaded, setLoaded] = useState(\n // For web rehydration, we need to check if the fonts are already loaded during the static render.\n // Native will also benefit from this optimization.\n isMapLoaded(map)\n );\n const [error, setError] = useState(null);\n\n useEffect(() => {\n loadAsync(map)\n .then(() => setLoaded(true))\n .catch(setError);\n }, []);\n\n return [loaded, error];\n}\n\nfunction useStaticFonts(map: string | Record): [boolean, Error | null] {\n loadAsync(map);\n return [true, null];\n}\n\n// @needsAudit\n/**\n * ```ts\n * const [loaded, error] = useFonts({ ... });\n * ```\n * Load a map of fonts with [`loadAsync`](#loadasync). This returns a `boolean` if the fonts are\n * loaded and ready to use. It also returns an error if something went wrong, to use in development.\n *\n * > Note, the fonts are not \"reloaded\" when you dynamically change the font map.\n *\n * @param map A map of `fontFamily`s to [`FontSource`](#fontsource)s. After loading the font you can\n * use the key in the `fontFamily` style prop of a `Text` element.\n *\n * @return\n * - __loaded__ (`boolean`) - A boolean to detect if the font for `fontFamily` has finished\n * loading.\n * - __error__ (`Error | null`) - An error encountered when loading the fonts.\n */\nexport const useFonts: (map: string | Record) => [boolean, Error | null] =\n typeof window === 'undefined' ? useStaticFonts : useRuntimeFonts;\n","import { PermissionResponse, PermissionStatus, Platform } from 'expo-modules-core';\n\nimport {\n ImagePickerAsset,\n ImagePickerResult,\n MediaTypeOptions,\n OpenFileBrowserOptions,\n} from './ImagePicker.types';\n\nconst MediaTypeInput = {\n [MediaTypeOptions.All]: 'video/mp4,video/quicktime,video/x-m4v,video/*,image/*',\n [MediaTypeOptions.Images]: 'image/*',\n [MediaTypeOptions.Videos]: 'video/mp4,video/quicktime,video/x-m4v,video/*',\n};\n\nexport default {\n get name(): string {\n return 'ExponentImagePicker';\n },\n\n async launchImageLibraryAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { canceled: true, assets: null };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n base64,\n });\n },\n\n async launchCameraAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { canceled: true, assets: null };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n capture: true,\n base64,\n });\n },\n\n /*\n * Delegate to expo-permissions to request camera permissions\n */\n async getCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n async requestCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n\n /*\n * Camera roll permissions don't need to be requested on web, so we always\n * respond with granted.\n */\n async getMediaLibraryPermissionsAsync(_writeOnly: boolean) {\n return permissionGrantedResponse();\n },\n async requestMediaLibraryPermissionsAsync(_writeOnly: boolean): Promise {\n return permissionGrantedResponse();\n },\n};\n\nfunction permissionGrantedResponse(): PermissionResponse {\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\nfunction openFileBrowserAsync({\n mediaTypes,\n capture = false,\n allowsMultipleSelection = false,\n base64,\n}: OpenFileBrowserOptions): Promise {\n const mediaTypeFormat = MediaTypeInput[mediaTypes];\n\n const input = document.createElement('input');\n input.style.display = 'none';\n input.setAttribute('type', 'file');\n input.setAttribute('accept', mediaTypeFormat);\n input.setAttribute('id', String(Math.random()));\n if (allowsMultipleSelection) {\n input.setAttribute('multiple', 'multiple');\n }\n if (capture) {\n input.setAttribute('capture', 'camera');\n }\n document.body.appendChild(input);\n\n return new Promise((resolve) => {\n input.addEventListener('change', async () => {\n if (input.files) {\n const files = allowsMultipleSelection ? input.files : [input.files[0]];\n const assets: ImagePickerAsset[] = await Promise.all(\n Array.from(files).map((file) => readFile(file, { base64 }))\n );\n\n resolve({ canceled: false, assets });\n } else {\n resolve({ canceled: true, assets: null });\n }\n document.body.removeChild(input);\n });\n\n const event = new MouseEvent('click');\n input.dispatchEvent(event);\n });\n}\n\nfunction readFile(targetFile: File, options: { base64: boolean }): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = () => {\n reject(new Error(`Failed to read the selected media because the operation failed.`));\n };\n reader.onload = ({ target }) => {\n const uri = (target as any).result;\n const returnRaw = () => resolve({ uri, width: 0, height: 0 });\n\n if (typeof uri === 'string') {\n const image = new Image();\n image.src = uri;\n\n image.onload = () => {\n resolve({\n uri,\n width: image.naturalWidth ?? image.width,\n height: image.naturalHeight ?? image.height,\n mimeType: targetFile.type,\n fileName: targetFile.name,\n // The blob's result cannot be directly decoded as Base64 without\n // first removing the Data-URL declaration preceding the\n // Base64-encoded data. To retrieve only the Base64 encoded string,\n // first remove data:*/*;base64, from the result.\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n ...(options.base64 && { base64: uri.substr(uri.indexOf(',') + 1) }),\n });\n };\n image.onerror = () => returnRaw();\n } else {\n returnRaw();\n }\n };\n\n reader.readAsDataURL(targetFile);\n });\n}\n","import {\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n PermissionResponse,\n createPermissionHook,\n UnavailabilityError,\n CodedError,\n} from 'expo-modules-core';\n\nimport ExponentImagePicker from './ExponentImagePicker';\nimport {\n CameraPermissionResponse,\n MediaLibraryPermissionResponse,\n ImagePickerResult,\n ImagePickerErrorResult,\n ImagePickerOptions,\n} from './ImagePicker.types';\n\nfunction validateOptions(options: ImagePickerOptions) {\n const { aspect, quality, videoMaxDuration } = options;\n\n if (aspect != null) {\n const [x, y] = aspect;\n\n if (x <= 0 || y <= 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid aspect ratio values ${x}:${y}. Provide positive numbers.`\n );\n }\n }\n\n if (quality && (quality < 0 || quality > 1)) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'quality' value ${quality}. Provide a value between 0 and 1.`\n );\n }\n\n if (videoMaxDuration && videoMaxDuration < 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'videoMaxDuration' value ${videoMaxDuration}. Provide a non-negative number.`\n );\n }\n\n return options;\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing camera.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#camerapermissionresponse).\n */\nexport async function getCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.getCameraPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing photos.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#medialibrarypermissionresponse).\n */\nexport async function getMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n return ExponentImagePicker.getMediaLibraryPermissionsAsync(writeOnly);\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing camera. This does nothing on web because the\n * browser camera is not used.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#camerarollpermissionresponse).\n */\nexport async function requestCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.requestCameraPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing user's photo. This method does nothing on web.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#medialibrarypermissionresponse).\n */\nexport async function requestMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n const imagePickerMethod = ExponentImagePicker.requestMediaLibraryPermissionsAsync;\n return imagePickerMethod(writeOnly);\n}\n\n// @needsAudit\n/**\n * Check or request permissions to access the media library.\n * This uses both `requestMediaLibraryPermissionsAsync` and `getMediaLibraryPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useMediaLibraryPermissions();\n * ```\n */\nexport const useMediaLibraryPermissions = createPermissionHook<\n MediaLibraryPermissionResponse,\n { writeOnly?: boolean }\n>({\n // TODO(cedric): permission requesters should have an options param or a different requester\n getMethod: (options) => getMediaLibraryPermissionsAsync(options?.writeOnly),\n requestMethod: (options) => requestMediaLibraryPermissionsAsync(options?.writeOnly),\n});\n\n// @needsAudit\n/**\n * Check or request permissions to access the camera.\n * This uses both `requestCameraPermissionsAsync` and `getCameraPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useCameraPermissions();\n * ```\n */\nexport const useCameraPermissions = createPermissionHook({\n getMethod: getCameraPermissionsAsync,\n requestMethod: requestCameraPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * Android system sometimes kills the `MainActivity` after the `ImagePicker` finishes. When this\n * happens, we lost the data selected from the `ImagePicker`. However, you can retrieve the lost\n * data by calling `getPendingResultAsync`. You can test this functionality by turning on\n * `Don't keep activities` in the developer options.\n * @return\n * - **On Android:** a promise that resolves to an array of objects of exactly same type as in\n * `ImagePicker.launchImageLibraryAsync` or `ImagePicker.launchCameraAsync` if the `ImagePicker`\n * finished successfully. Otherwise, to the array of [`ImagePickerErrorResult`](#imagepickerimagepickererrorresult).\n * - **On other platforms:** an empty array.\n */\nexport async function getPendingResultAsync(): Promise<\n (ImagePickerResult | ImagePickerErrorResult)[]\n> {\n if (ExponentImagePicker.getPendingResultAsync) {\n return ExponentImagePicker.getPendingResultAsync();\n }\n return [];\n}\n\n// @needsAudit\n/**\n * Display the system UI for taking a photo with the camera. Requires `Permissions.CAMERA`.\n * On Android and iOS 10 `Permissions.CAMERA_ROLL` is also required. On mobile web, this must be\n * called immediately in a user interaction like a button press, otherwise the browser will block\n * the request without a warning.\n * > **Note:** Make sure that you handle `MainActivity` destruction on **Android**. See [ImagePicker.getPendingResultAsync](#imagepickergetpendingresultasync).\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchCameraAsync` in `componentDidMount`, for example, will **not** work as\n * intended. The `cancelled` event will not be returned in the browser due to platform restrictions\n * and inconsistencies across browsers.\n * @param options An `ImagePickerOptions` object.\n * @return A promise that resolves to an object with `canceled` and `assets` fields.\n * When the user canceled the action the `assets` is always `null`, otherwise it's an array of\n * the selected media assets which have a form of [`ImagePickerAsset`](#imagepickerasset).\n */\nexport async function launchCameraAsync(\n options: ImagePickerOptions = {}\n): Promise {\n if (!ExponentImagePicker.launchCameraAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchCameraAsync');\n }\n return await ExponentImagePicker.launchCameraAsync(validateOptions(options));\n}\n\n// @needsAudit\n/**\n * Display the system UI for choosing an image or a video from the phone's library.\n * Requires `Permissions.MEDIA_LIBRARY` on iOS 10 only. On mobile web, this must be called\n * immediately in a user interaction like a button press, otherwise the browser will block the\n * request without a warning.\n *\n * **Animated GIFs support:** On Android, if the selected image is an animated GIF, the result image will be an\n * animated GIF too if and only if `quality` is explicitly set to `1.0` and `allowsEditing` is set to `false`.\n * Otherwise compression and/or cropper will pick the first frame of the GIF and return it as the\n * result (on Android the result will be a PNG). On iOS, both quality and cropping are supported.\n *\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchImageLibraryAsync` in `componentDidMount`, for example, will **not**\n * work as intended. The `cancelled` event will not be returned in the browser due to platform\n * restrictions and inconsistencies across browsers.\n * @param options An object extended by [`ImagePickerOptions`](#imagepickeroptions).\n * @return A promise that resolves to an object with `canceled` and `assets` fields.\n * When the user canceled the action the `assets` is always `null`, otherwise it's an array of\n * the selected media assets which have a form of [`ImagePickerAsset`](#imagepickerasset).\n */\nexport async function launchImageLibraryAsync(\n options?: ImagePickerOptions\n): Promise {\n if (!ExponentImagePicker.launchImageLibraryAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchImageLibraryAsync');\n }\n if (options?.allowsEditing && options.allowsMultipleSelection) {\n console.warn(\n '[expo-image-picker] `allowsEditing` is not supported when `allowsMultipleSelection` is enabled and will be ignored.' +\n \"Disable either 'allowsEditing' or 'allowsMultipleSelection' in 'launchImageLibraryAsync' \" +\n 'to fix this warning.'\n );\n }\n return await ExponentImagePicker.launchImageLibraryAsync(options ?? {});\n}\n\nexport * from './ImagePicker.types';\n\nexport { PermissionStatus, PermissionExpiration, PermissionHookOptions, PermissionResponse };\n","import { PermissionResponse } from 'expo-modules-core';\n\n// @needsAudit\n/**\n * Alias for `PermissionResponse` type exported by `expo-modules-core`.\n */\nexport type CameraPermissionResponse = PermissionResponse;\n\n// @needsAudit\n/**\n * Extends `PermissionResponse` type exported by `expo-modules-core`, containing additional iOS-specific field.\n */\nexport type MediaLibraryPermissionResponse = PermissionResponse & {\n /**\n * @platform ios\n */\n accessPrivileges?: 'all' | 'limited' | 'none';\n};\n\n// @needsAudit\nexport enum MediaTypeOptions {\n /**\n * Images and videos.\n */\n All = 'All',\n /**\n * Only videos.\n */\n Videos = 'Videos',\n /**\n * Only images.\n */\n Images = 'Images',\n}\n\n// @needsAudit\nexport enum VideoExportPreset {\n /**\n * Resolution: __Unchanged__ •\n * Video compression: __None__ •\n * Audio compression: __None__\n */\n Passthrough = 0,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n LowQuality = 1,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n MediumQuality = 2,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n HighestQuality = 3,\n /**\n * Resolution: __640 × 480__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_640x480 = 4,\n /**\n * Resolution: __960 × 540__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_960x540 = 5,\n /**\n * Resolution: __1280 × 720__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1280x720 = 6,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1920x1080 = 7,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_3840x2160 = 8,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_1920x1080 = 9,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_3840x2160 = 10,\n}\n\n// @needsAudit\nexport enum UIImagePickerControllerQualityType {\n /**\n * Highest available resolution.\n */\n High = 0,\n /**\n * Depends on the device.\n */\n Medium = 1,\n /**\n * Depends on the device.\n */\n Low = 2,\n /**\n * 640 × 480\n */\n VGA640x480 = 3,\n /**\n * 1280 × 720\n */\n IFrame1280x720 = 4,\n /**\n * 960 × 540\n */\n IFrame960x540 = 5,\n}\n\n/**\n * Picker presentation style. Its values are directly mapped to the [`UIModalPresentationStyle`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle).\n *\n * @platform ios\n */\nexport enum UIImagePickerPresentationStyle {\n /**\n * A presentation style in which the presented picker covers the screen.\n */\n FULL_SCREEN = 'fullScreen',\n /**\n * A presentation style that partially covers the underlying content.\n */\n PAGE_SHEET = 'pageSheet',\n /**\n * A presentation style that displays the picker centered in the screen.\n */\n FORM_SHEET = 'formSheet',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n CURRENT_CONTEXT = 'currentContext',\n /**\n * A presentation style in which the picker view covers the screen.\n */\n OVER_FULL_SCREEN = 'overFullScreen',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n OVER_CURRENT_CONTEXT = 'overCurrentContext',\n /**\n * A presentation style where the picker is displayed in a popover view.\n */\n POPOVER = 'popover',\n /**\n * The default presentation style chosen by the system.\n * On older iOS versions, falls back to `WebBrowserPresentationStyle.FullScreen`.\n *\n * @platform ios 13+\n */\n AUTOMATIC = 'automatic',\n}\n\n/**\n * Picker preferred asset representation mode. Its values are directly mapped to the [`PHPickerConfigurationAssetRepresentationMode`](https://developer.apple.com/documentation/photokit/phpickerconfigurationassetrepresentationmode).\n *\n * @platform ios\n */\nexport enum UIImagePickerPreferredAssetRepresentationMode {\n /**\n * A mode that indicates that the system chooses the appropriate asset representation.\n */\n Automatic = 'automatic',\n /**\n * A mode that uses the most compatible asset representation.\n */\n Compatible = 'compatible',\n /**\n * A mode that uses the current representation to avoid transcoding, if possible.\n */\n Current = 'current',\n}\n\nexport enum CameraType {\n /**\n * Back/rear camera.\n */\n back = 'back',\n /**\n * Front camera\n */\n front = 'front',\n}\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerAsset` instead\n */\nexport type ImageInfo = ImagePickerAsset;\n\n/**\n * Represents an asset (image or video) returned by the image picker or camera.\n */\nexport type ImagePickerAsset = {\n /**\n * URI to the local image or video file (usable as the source of an `Image` element, in the case of\n * an image) and `width` and `height` specify the dimensions of the media.\n */\n uri: string;\n /**\n * The unique ID that represents the picked image or video, if picked from the library. It can be used\n * by [expo-media-library](./media-library) to manage the picked asset.\n *\n * > This might be `null` when the ID is unavailable or the user gave limited permission to access the media library.\n * > On Android, the ID is unavailable when the user selects a photo by directly browsing file system.\n *\n * @platform ios\n * @platform android\n */\n assetId?: string | null;\n /**\n * Width of the image or video.\n */\n width: number;\n /**\n * Height of the image or video.\n */\n height: number;\n /**\n * The type of the asset.\n */\n type?: 'image' | 'video';\n /**\n * Preferred filename to use when saving this item. This might be `null` when the name is unavailable\n * or user gave limited permission to access the media library.\n *\n */\n fileName?: string | null;\n /**\n * File size of the picked image or video, in bytes.\n *\n */\n fileSize?: number;\n /**\n * The `exif` field is included if the `exif` option is truthy, and is an object containing the\n * image's EXIF data. The names of this object's properties are EXIF tags and the values are the\n * respective EXIF values for those tags.\n */\n exif?: Record | null;\n /**\n * When the `base64` option is truthy, it is a Base64-encoded string of the selected image's JPEG data, otherwise `null`.\n * If you prepend this with `'data:image/jpeg;base64,'` to create a data URI,\n * you can use it as the source of an `Image` element; for example:\n * ```ts\n * \n * ```\n */\n base64?: string | null;\n /**\n * Length of the video in milliseconds or `null` if the asset is not a video.\n */\n duration?: number | null;\n /**\n * The MIME type of the selected asset or `null` if could not be determined.\n */\n mimeType?: string;\n};\n\n// @needsAudit\nexport type ImagePickerErrorResult = {\n /**\n * The error code.\n */\n code: string;\n /**\n * The error message.\n */\n message: string;\n /**\n * The exception which caused the error.\n */\n exception?: string;\n};\n\n// @needsAudit\n/**\n * Type representing successful and canceled pick result.\n */\nexport type ImagePickerResult = ImagePickerSuccessResult | ImagePickerCanceledResult;\n\n/**\n * Type representing successful pick result.\n */\nexport type ImagePickerSuccessResult = {\n /**\n * Boolean flag set to `false` showing that the request was successful.\n */\n canceled: false;\n /**\n * An array of picked assets.\n */\n assets: ImagePickerAsset[];\n};\n\n/**\n * Type representing canceled pick result.\n */\nexport type ImagePickerCanceledResult = {\n /**\n * Boolean flag set to `true` showing that the request was canceled.\n */\n canceled: true;\n /**\n * `null` signifying that the request was canceled.\n */\n assets: null;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` instead.\n */\nexport type ImagePickerCancelledResult = ImagePickerCanceledResult;\n\n/**\n * @hidden\n * @deprecated `ImagePickerMultipleResult` has been deprecated in favor of `ImagePickerResult`.\n */\nexport type ImagePickerMultipleResult = ImagePickerResult;\n\n// @needsAudit\nexport type ImagePickerOptions = {\n /**\n * Whether to show a UI to edit the image after it is picked. On Android the user can crop and\n * rotate the image and on iOS simply crop it.\n *\n * > - Cropping multiple images is not supported - this option is mutually exclusive with `allowsMultipleSelection`.\n * > - On iOS, this option is ignored if `allowsMultipleSelection` is enabled.\n * > - On iOS cropping a `.bmp` image will convert it to `.png`.\n *\n * @default false\n * @platform ios\n * @platform android\n */\n allowsEditing?: boolean;\n /**\n * An array with two entries `[x, y]` specifying the aspect ratio to maintain if the user is\n * allowed to edit the image (by passing `allowsEditing: true`). This is only applicable on\n * Android, since on iOS the crop rectangle is always a square.\n */\n aspect?: [number, number];\n /**\n * Specify the quality of compression, from `0` to `1`. `0` means compress for small size,\n * `1` means compress for maximum quality.\n * > Note: If the selected image has been compressed before, the size of the output file may be\n * > bigger than the size of the original image.\n *\n * > Note: On iOS, if a `.bmp` or `.png` image is selected from the library, this option is ignored.\n *\n * @default 0.2\n * @platform ios\n * @platform android\n */\n quality?: number;\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes?: MediaTypeOptions;\n /**\n * Whether to also include the EXIF data for the image. On iOS the EXIF data does not include GPS\n * tags in the camera case.\n */\n exif?: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Specify preset which will be used to compress selected video.\n * @default ImagePicker.VideoExportPreset.Passthrough\n * @platform ios 11+\n * @deprecated See [`videoExportPreset`](https://developer.apple.com/documentation/uikit/uiimagepickercontroller/2890964-videoexportpreset?language=objc)\n * in Apple documentation.\n */\n videoExportPreset?: VideoExportPreset;\n /**\n * Specify the quality of recorded videos. Defaults to the highest quality available for the device.\n * @default ImagePicker.UIImagePickerControllerQualityType.High\n * @platform ios\n */\n videoQuality?: UIImagePickerControllerQualityType;\n /**\n * Whether or not to allow selecting multiple media files at once.\n *\n * > Cropping multiple images is not supported - this option is mutually exclusive with `allowsEditing`.\n * > If this option is enabled, then `allowsEditing` is ignored.\n *\n * @default false\n * @platform ios 14+\n * @platform android\n * @platform web\n */\n allowsMultipleSelection?: boolean;\n /**\n * The maximum number of items that user can select. Applicable when `allowsMultipleSelection` is enabled.\n * Setting the value to `0` sets the selection limit to the maximum that the system supports.\n *\n * @platform ios 14+\n * @platform android\n * @default 0\n */\n selectionLimit?: number;\n /**\n * Whether to display number badges when assets are selected. The badges are numbered\n * in selection order. Assets are then returned in the exact same order they were selected.\n *\n * > Assets should be returned in the selection order regardless of this option,\n * > but there is no guarantee that it is always true when this option is disabled.\n *\n * @platform ios 15+\n * @default false\n */\n orderedSelection?: boolean;\n /**\n * Maximum duration, in seconds, for video recording. Setting this to `0` disables the limit.\n * Defaults to `0` (no limit).\n * - **On iOS**, when `allowsEditing` is set to `true`, maximum duration is limited to 10 minutes.\n * This limit is applied automatically, if `0` or no value is specified.\n * - **On Android**, effect of this option depends on support of installed camera app.\n * - **On Web** this option has no effect - the limit is browser-dependant.\n */\n videoMaxDuration?: number;\n /**\n * Choose [presentation style](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle?language=objc)\n * to customize view during taking photo/video.\n * @default ImagePicker.UIImagePickerPresentationStyle.Automatic\n * @platform ios\n */\n presentationStyle?: UIImagePickerPresentationStyle;\n /**\n * Selects the camera-facing type. The `CameraType` enum provides two options:\n * `front` for the front-facing camera and `back` for the back-facing camera.\n * - **On Android**, the behavior of this option may vary based on the camera app installed on the device.\n * @default CameraType.back\n * @platform ios\n * @platform android\n */\n cameraType?: CameraType;\n /**\n * Choose [preferred asset representation mode](https://developer.apple.com/documentation/photokit/phpickerconfigurationassetrepresentationmode)\n * to use when loading assets.\n * @default ImagePicker.UIImagePickerPreferredAssetRepresentationMode.Automatic\n * @platform ios 14+\n */\n preferredAssetRepresentationMode?: UIImagePickerPreferredAssetRepresentationMode;\n};\n\n// @needsAudit\nexport type OpenFileBrowserOptions = {\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes: MediaTypeOptions;\n // @docsMissing\n capture?: boolean;\n /**\n * Whether or not to allow selecting multiple media files at once.\n * @platform web\n */\n allowsMultipleSelection: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64: boolean;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` or `OpenFileBrowserOptions` instead.\n */\nexport type ExpandImagePickerResult =\n T extends {\n allowsMultipleSelection: true;\n }\n ? ImagePickerResult\n : ImagePickerResult;\n","import invariant from 'invariant';\nimport { NativeEventEmitter, NativeModules, Platform } from 'react-native';\n\nconst nativeEmitterSubscriptionKey = '@@nativeEmitterSubscription@@';\n\ntype NativeModule = {\n __expo_module_name__?: string;\n startObserving?: () => void;\n stopObserving?: () => void;\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n};\n\n// @needsAudit\nexport type Subscription = {\n /**\n * A method to unsubscribe the listener.\n */\n remove: () => void;\n};\n\nexport class EventEmitter {\n _listenerCount = 0;\n _nativeModule: NativeModule;\n _eventEmitter: NativeEventEmitter;\n\n constructor(nativeModule: NativeModule) {\n // Expo modules installed through the JSI don't have `addListener` and `removeListeners` set,\n // so if someone wants to use them with `EventEmitter`, make sure to provide these functions\n // as they are required by `NativeEventEmitter`. This is only temporary — in the future\n // JSI modules will have event emitter built in.\n if (nativeModule.__expo_module_name__ && NativeModules.EXReactNativeEventEmitter) {\n nativeModule.addListener = (...args) =>\n NativeModules.EXReactNativeEventEmitter.addProxiedListener(\n nativeModule.__expo_module_name__,\n ...args\n );\n nativeModule.removeListeners = (...args) =>\n NativeModules.EXReactNativeEventEmitter.removeProxiedListeners(\n nativeModule.__expo_module_name__,\n ...args\n );\n }\n this._nativeModule = nativeModule;\n this._eventEmitter = new NativeEventEmitter(nativeModule as any);\n }\n\n addListener(eventName: string, listener: (event: T) => void): Subscription {\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.startObserving) {\n this._nativeModule.startObserving();\n }\n\n this._listenerCount++;\n const nativeEmitterSubscription = this._eventEmitter.addListener(eventName, listener);\n const subscription = {\n [nativeEmitterSubscriptionKey]: nativeEmitterSubscription,\n remove: () => {\n this.removeSubscription(subscription);\n },\n };\n return subscription;\n }\n\n removeAllListeners(eventName: string): void {\n // @ts-ignore: the EventEmitter interface has been changed in react-native@0.64.0\n const removedListenerCount = this._eventEmitter.listenerCount\n ? // @ts-ignore: this is available since 0.64\n this._eventEmitter.listenerCount(eventName)\n : // @ts-ignore: this is available in older versions\n this._eventEmitter.listeners(eventName).length;\n this._eventEmitter.removeAllListeners(eventName);\n this._listenerCount -= removedListenerCount;\n invariant(\n this._listenerCount >= 0,\n `EventEmitter must have a non-negative number of listeners`\n );\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n removeSubscription(subscription: Subscription): void {\n const nativeEmitterSubscription = subscription[nativeEmitterSubscriptionKey];\n if (!nativeEmitterSubscription) {\n return;\n }\n\n if ('remove' in nativeEmitterSubscription) {\n nativeEmitterSubscription.remove();\n }\n this._listenerCount--;\n\n // Ensure that the emitter's internal state remains correct even if `removeSubscription` is\n // called again with the same subscription\n delete subscription[nativeEmitterSubscriptionKey];\n\n // Release closed-over references to the emitter\n subscription.remove = () => {};\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n emit(eventName: string, ...params: any[]): void {\n this._eventEmitter.emit(eventName, ...params);\n }\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { PermissionResponse } from './PermissionsInterface';\n\n// These types are identical, but improves the readability for suggestions in editors\ntype RequestPermissionMethod = () => Promise;\ntype GetPermissionMethod = () => Promise;\n\ninterface PermissionHookMethods {\n /** The permission method that requests the user to grant permission. */\n requestMethod: (options?: Options) => Promise;\n /** The permission method that only fetches the current permission status. */\n getMethod: (options?: Options) => Promise;\n}\n\ninterface PermissionHookBehavior {\n /** If the hook should automatically fetch the current permission status, without asking the user. */\n get?: boolean;\n /** If the hook should automatically request the user to grant permission. */\n request?: boolean;\n}\n\nexport type PermissionHookOptions = PermissionHookBehavior & Options;\n\n/**\n * Get or request permission for protected functionality within the app.\n * It uses separate permission requesters to interact with a single permission.\n * By default, the hook will only retrieve the permission status.\n */\nfunction usePermission(\n methods: PermissionHookMethods,\n options?: PermissionHookOptions\n): [Permission | null, RequestPermissionMethod, GetPermissionMethod] {\n const isMounted = useRef(true);\n const [status, setStatus] = useState(null);\n const { get = true, request = false, ...permissionOptions } = options || {};\n\n const getPermission = useCallback(async () => {\n const response = await methods.getMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.getMethod]);\n\n const requestPermission = useCallback(async () => {\n const response = await methods.requestMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.requestMethod]);\n\n useEffect(\n function runMethods() {\n if (request) requestPermission();\n if (!request && get) getPermission();\n },\n [get, request, requestPermission, getPermission]\n );\n\n // Workaround for unmounting components receiving state updates\n useEffect(function didMount() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return [status, requestPermission, getPermission];\n}\n\n/**\n * Create a new permission hook with the permission methods built-in.\n * This can be used to quickly create specific permission hooks in every module.\n */\nexport function createPermissionHook(\n methods: PermissionHookMethods\n) {\n return (options?: PermissionHookOptions) =>\n usePermission(methods, options);\n}\n","export enum PermissionStatus {\n /**\n * User has granted the permission.\n */\n GRANTED = 'granted',\n /**\n * User hasn't granted or denied the permission yet.\n */\n UNDETERMINED = 'undetermined',\n /**\n * User has denied the permission.\n */\n DENIED = 'denied',\n}\n\n/**\n * Permission expiration time. Currently, all permissions are granted permanently.\n */\nexport type PermissionExpiration = 'never' | number;\n\n/**\n * An object obtained by permissions get and request functions.\n */\nexport interface PermissionResponse {\n /**\n * Determines the status of the permission.\n */\n status: PermissionStatus;\n /**\n * Determines time when the permission expires.\n */\n expires: PermissionExpiration;\n /**\n * A convenience boolean that indicates if the permission is granted.\n */\n granted: boolean;\n /**\n * Indicates if user can be asked again for specific permission.\n * If not, one should be directed to the Settings app\n * in order to enable/disable the permission.\n */\n canAskAgain: boolean;\n}\n","declare global {\n // Add IE-specific interface to Window\n interface Window {\n attachEvent(event: string, listener: EventListener): boolean;\n }\n}\n\n// Used for delegating node actions when browser APIs aren't available\n// like in SSR websites.\nexport const isDOMAvailable = typeof window !== 'undefined' && !!window.document?.createElement;\nexport const canUseEventListeners =\n isDOMAvailable && !!(window.addEventListener || window.attachEvent);\nexport const canUseViewport = isDOMAvailable && !!window.screen;\nexport const isAsyncDebugging = false;\n","import { Platform as ReactNativePlatform, PlatformOSType } from 'react-native';\n\nimport {\n isDOMAvailable,\n canUseEventListeners,\n canUseViewport,\n isAsyncDebugging,\n} from './environment/browser';\n\nexport type PlatformSelectOSType = PlatformOSType | 'native' | 'electron' | 'default';\n\nexport type PlatformSelect = (specifics: { [platform in PlatformSelectOSType]?: T }) => T;\n\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select as PlatformSelect,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\n\nexport default Platform;\n","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}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code: string;\n info?: any;\n\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n }\n}\n","import { CodedError } from './CodedError';\nimport Platform from '../Platform';\n\n/**\n * A class for errors to be thrown when a property is accessed which is\n * unavailable, unsupported, or not currently implemented on the running\n * platform.\n */\nexport class UnavailabilityError extends CodedError {\n constructor(moduleName: string, propertyName: string) {\n super(\n 'ERR_UNAVAILABLE',\n `The method or property ${moduleName}.${propertyName} is not available on ${Platform.OS}, are you sure you've linked all the native dependencies properly?`\n );\n }\n}\n","export function setStatusBarBackgroundColor() {}\nexport function setStatusBarNetworkActivityIndicatorVisible() {}\nexport function setStatusBarHidden() {}\nexport function setStatusBarStyle() {}\nexport function setStatusBarTranslucent() {}\nexport function StatusBar() {\n return null;\n}\n","import { Platform, PixelRatio, Dimensions } from 'react-native';\nimport type { IUseDetectDevice } from './model';\n\nconst { width, height } = Dimensions.get('window');\n\nconst isTablet = () => {\n let pixelDensity = PixelRatio.get();\n const adjustedWidth = width * pixelDensity;\n const adjustedHeight = height * pixelDensity;\n if (pixelDensity < 2 && (adjustedWidth >= 1000 || adjustedHeight >= 1000)) {\n return true;\n } else {\n return (\n pixelDensity === 2 && (adjustedWidth >= 1824 || adjustedHeight >= 1824)\n );\n }\n};\n\nconst useDetectDevice: IUseDetectDevice = {\n isAndroid: Platform.OS === 'android',\n isIOS: Platform.OS === 'ios',\n isTablet: isTablet(),\n};\n\nexport { useDetectDevice };\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport { useEffect, useState } from 'react';\nimport { Dimensions, ScaledSize } from 'react-native';\n\nconst isOrientationPortrait = ({ width, height }: ScaledSize) =>\n height >= width;\nconst isOrientationLandscape = ({ width, height }: ScaledSize) =>\n width >= height;\n\nexport function useDeviceOrientation() {\n const screen = Dimensions.get('screen');\n const initialState = {\n portrait: isOrientationPortrait(screen),\n landscape: isOrientationLandscape(screen),\n };\n\n const [orientation, setOrientation] = useState(initialState);\n\n useEffect(() => {\n const onChange = ({ screen }: { screen: ScaledSize }) => {\n setOrientation({\n portrait: isOrientationPortrait(screen),\n landscape: isOrientationLandscape(screen),\n });\n };\n\n const subscription = Dimensions.addEventListener('change', onChange);\n\n return () => {\n if (typeof subscription?.remove === 'function') {\n subscription.remove();\n }\n };\n }, []);\n\n return orientation.portrait ? 'PORTRAIT' : 'LANDSCAPE';\n}\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n container: {\n backgroundColor: 'white',\n borderRadius: 8,\n padding: 12,\n justifyContent: 'center',\n },\n textInput: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n alignItems: 'center',\n flex: 1,\n },\n input: {\n fontSize: 16,\n flex: 1,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n label: {\n marginBottom: 4,\n fontSize: 16,\n },\n row: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n icon: {\n width: 20,\n height: 20,\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport React, { useEffect, useState } from 'react';\nimport {\n Image,\n TextInput,\n TouchableOpacity,\n View,\n TouchableWithoutFeedback,\n StyleSheet,\n} from 'react-native';\nimport type { CTextInput } from './model';\nimport { styles } from './styles';\n\nconst ic_close = require('../../assets/close.png');\n\nconst TextInputComponent: CTextInput = (props) => {\n const {\n fontFamily,\n style,\n value,\n placeholderTextColor = '#000',\n placeholder = '',\n showIcon,\n inputStyle,\n iconStyle,\n onChangeText = (_value: string) => {},\n renderLeftIcon,\n renderRightIcon,\n } = props;\n\n const [text, setText] = useState('');\n\n useEffect(() => {\n if (value) {\n setText(value);\n }\n }, [value]);\n\n const onChange = (text: string) => {\n setText(text);\n onChangeText(text);\n };\n\n const _renderRightIcon = () => {\n if (showIcon) {\n if (renderRightIcon) {\n return renderRightIcon();\n }\n if (text.length > 0) {\n return (\n onChange('')}>\n \n \n );\n }\n return null;\n }\n return null;\n };\n\n const font = () => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n };\n\n return (\n \n \n \n {renderLeftIcon?.()}\n \n {_renderRightIcon()}\n \n \n \n );\n};\n\nexport default TextInputComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n mainWrap: {\n justifyContent: 'center',\n },\n container: {\n flexShrink: 1,\n borderWidth: 0.5,\n borderColor: '#EEEEEE',\n backgroundColor: 'white',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n flex1: {\n flex: 1,\n },\n flexShrink: {\n flexShrink: 1,\n },\n wrapTop: {\n justifyContent: 'flex-end',\n },\n dropdown: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n title: {\n marginVertical: 5,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n item: {\n padding: 17,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n textItem: {\n flex: 1,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n icon: {\n width: 20,\n height: 20,\n },\n input: {\n borderWidth: 0.5,\n borderColor: '#DDDDDD',\n paddingHorizontal: 8,\n marginBottom: 8,\n margin: 6,\n height: 45,\n },\n fullScreen: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport _assign from 'lodash/assign';\nimport _differenceWith from 'lodash/differenceWith';\nimport _findIndex from 'lodash/findIndex';\nimport _get from 'lodash/get';\nimport _isEqual from 'lodash/isEqual';\n\nimport React, {\n JSXElementConstructor,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardEvent,\n Modal,\n StyleSheet,\n Text,\n TouchableHighlight,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StatusBar,\n} from 'react-native';\nimport { useDetectDevice } from '../../toolkits';\nimport { useDeviceOrientation } from '../../useDeviceOrientation';\nimport CInput from '../TextInput';\nimport { DropdownProps } from './model';\nimport { styles } from './styles';\n\nconst { isTablet } = useDetectDevice;\nconst ic_down = require('../../assets/down.png');\n\nconst statusBarHeight: number = StatusBar.currentHeight || 0;\n\nconst DropdownComponent: (\n props: DropdownProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const orientation = useDeviceOrientation();\n const {\n testID,\n itemTestIDField,\n onChange,\n style = {},\n containerStyle,\n placeholderStyle,\n selectedTextStyle,\n itemContainerStyle,\n itemTextStyle,\n inputSearchStyle,\n iconStyle,\n selectedTextProps = {},\n data = [],\n labelField,\n valueField,\n searchField,\n value,\n activeColor = '#F6F7F8',\n fontFamily,\n iconColor = 'gray',\n searchPlaceholder,\n placeholder = 'Select item',\n search = false,\n maxHeight = 340,\n minHeight = 0,\n disable = false,\n keyboardAvoiding = true,\n inverted = true,\n renderLeftIcon,\n renderRightIcon,\n renderItem,\n renderInputSearch,\n onFocus,\n onBlur,\n autoScroll = true,\n showsVerticalScrollIndicator = true,\n dropdownPosition = 'auto',\n flatListProps,\n searchQuery,\n backgroundColor,\n onChangeText,\n confirmSelectItem,\n onConfirmSelectItem,\n accessibilityLabel,\n itemAccessibilityLabelField,\n mode = 'default',\n closeModalWhenSelectedItem = true,\n excludeItems = [],\n excludeSearchItems = [],\n } = props;\n\n const ref = useRef(null);\n const refList = useRef(null);\n const [visible, setVisible] = useState(false);\n const [currentValue, setCurrentValue] = useState(null);\n const [listData, setListData] = useState(data);\n const [position, setPosition] = useState();\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n const [searchText, setSearchText] = useState('');\n\n const { width: W, height: H } = Dimensions.get('window');\n const styleContainerVertical: ViewStyle = useMemo(() => {\n return {\n backgroundColor: 'rgba(0,0,0,0.1)',\n alignItems: 'center',\n };\n }, []);\n const styleHorizontal: ViewStyle = useMemo(() => {\n return {\n width: orientation === 'LANDSCAPE' ? W / 2 : '100%',\n alignSelf: 'center',\n };\n }, [W, orientation]);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n useEffect(() => {\n return eventClose;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const excludeData = useCallback(\n (data: any[]) => {\n if (excludeItems.length > 0) {\n const getData = _differenceWith(\n data,\n excludeItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n return getData || [];\n } else {\n return data || [];\n }\n },\n [excludeItems, valueField]\n );\n\n useEffect(() => {\n const filterData = excludeData(data);\n setListData([...filterData]);\n if (searchText) {\n onSearch(searchText);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, searchText]);\n\n const eventOpen = () => {\n if (!disable) {\n setVisible(true);\n if (onFocus) {\n onFocus();\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n scrollIndex();\n }\n };\n\n const eventClose = useCallback(() => {\n if (!disable) {\n setVisible(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [disable, onBlur]);\n\n const font = useCallback(() => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n }, [fontFamily]);\n\n const _measure = useCallback(() => {\n if (ref && ref?.current) {\n ref.current.measureInWindow((pageX, pageY, width, height) => {\n let isFull = isTablet\n ? false\n : mode === 'modal' || orientation === 'LANDSCAPE';\n\n if (mode === 'auto') {\n isFull = false;\n }\n\n const top = isFull ? 20 : height + pageY + 2;\n const bottom = H - top + height;\n const left = I18nManager.isRTL ? W - width - pageX : pageX;\n\n setPosition({\n isFull,\n width: Math.floor(width),\n top: Math.floor(top + statusBarHeight),\n bottom: Math.floor(bottom - statusBarHeight),\n left: Math.floor(left),\n height: Math.floor(height),\n });\n });\n }\n }, [H, W, orientation, mode]);\n\n const onKeyboardDidShow = useCallback(\n (e: KeyboardEvent) => {\n _measure();\n setKeyboardHeight(e.endCoordinates.height);\n },\n [_measure]\n );\n\n const onKeyboardDidHide = useCallback(() => {\n setKeyboardHeight(0);\n _measure();\n }, [_measure]);\n\n useEffect(() => {\n const susbcriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n onKeyboardDidShow\n );\n const susbcriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n onKeyboardDidHide\n );\n\n return () => {\n if (typeof susbcriptionKeyboardDidShow?.remove === 'function') {\n susbcriptionKeyboardDidShow.remove();\n }\n\n if (typeof susbcriptionKeyboardDidHide?.remove === 'function') {\n susbcriptionKeyboardDidHide.remove();\n }\n };\n }, [onKeyboardDidHide, onKeyboardDidShow]);\n\n const getValue = useCallback(() => {\n const defaultValue =\n typeof value === 'object' ? _get(value, valueField) : value;\n\n const getItem = data.filter((e) =>\n _isEqual(defaultValue, _get(e, valueField))\n );\n\n if (getItem.length > 0) {\n setCurrentValue(getItem[0]);\n } else {\n setCurrentValue(null);\n }\n }, [data, value, valueField]);\n\n useEffect(() => {\n getValue();\n }, [value, data, getValue]);\n\n const scrollIndex = useCallback(() => {\n if (autoScroll && data?.length > 0 && listData?.length === data?.length) {\n setTimeout(() => {\n if (refList && refList?.current) {\n const defaultValue =\n typeof value === 'object' ? _get(value, valueField) : value;\n\n const index = _findIndex(listData, (e) =>\n _isEqual(defaultValue, _get(e, valueField))\n );\n if (\n listData?.length > 0 &&\n index > -1 &&\n index <= listData?.length - 1\n ) {\n try {\n refList.current.scrollToIndex({\n index: index,\n animated: false,\n });\n } catch (error) {\n console.warn(`scrollToIndex error: ${error}`);\n }\n }\n }\n }, 200);\n }\n }, [autoScroll, data.length, listData, value, valueField]);\n\n const showOrClose = useCallback(() => {\n if (!disable) {\n const visibleStatus = !visible;\n\n if (keyboardHeight > 0 && !visibleStatus) {\n return Keyboard.dismiss();\n }\n\n if (!visibleStatus) {\n if (onChangeText) {\n onChangeText('');\n }\n setSearchText('');\n onSearch('');\n }\n\n _measure();\n setVisible(visibleStatus);\n const filterData = excludeData(data);\n setListData(filterData);\n\n if (visibleStatus) {\n if (onFocus) {\n onFocus();\n }\n } else {\n if (onBlur) {\n onBlur();\n }\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n scrollIndex();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disable,\n keyboardHeight,\n visible,\n _measure,\n data,\n searchText,\n scrollIndex,\n onFocus,\n onBlur,\n ]);\n\n const onSearch = useCallback(\n (text: string) => {\n if (text.length > 0) {\n const defaultFilterFunction = (e: any) => {\n const item = _get(e, searchField || labelField)\n ?.toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const key = text\n .toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return item.indexOf(key) >= 0;\n };\n\n const propSearchFunction = (e: any) => {\n const labelText = _get(e, searchField || labelField);\n\n return searchQuery?.(text, labelText);\n };\n\n const dataSearch = data.filter(\n searchQuery ? propSearchFunction : defaultFilterFunction\n );\n\n if (excludeSearchItems.length > 0 || excludeItems.length > 0) {\n const excludeSearchData = _differenceWith(\n dataSearch,\n excludeSearchItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n\n const filterData = excludeData(excludeSearchData);\n setListData(filterData);\n } else {\n setListData(dataSearch);\n }\n } else {\n const filterData = excludeData(data);\n setListData(filterData);\n }\n },\n [\n data,\n searchQuery,\n excludeSearchItems,\n excludeItems,\n searchField,\n labelField,\n valueField,\n excludeData,\n ]\n );\n\n const onSelect = useCallback(\n (item: any) => {\n if (confirmSelectItem && onConfirmSelectItem) {\n return onConfirmSelectItem(item);\n }\n\n setCurrentValue(item);\n onChange(item);\n\n if (closeModalWhenSelectedItem) {\n if (onChangeText) {\n onChangeText('');\n }\n setSearchText('');\n onSearch('');\n eventClose();\n }\n },\n [\n confirmSelectItem,\n eventClose,\n onChange,\n onChangeText,\n onConfirmSelectItem,\n onSearch,\n closeModalWhenSelectedItem,\n ]\n );\n\n const _renderDropdown = () => {\n const isSelected = currentValue && _get(currentValue, valueField);\n return (\n \n \n {renderLeftIcon?.(visible)}\n \n {isSelected !== null\n ? _get(currentValue, labelField)\n : placeholder}\n \n {renderRightIcon ? (\n renderRightIcon(visible)\n ) : (\n \n )}\n \n \n );\n };\n\n const _renderItem = useCallback(\n ({ item, index }: { item: any; index: number }) => {\n const isSelected = currentValue && _get(currentValue, valueField);\n const selected = _isEqual(_get(item, valueField), isSelected);\n _assign(item, { _index: index });\n return (\n onSelect(item)}\n >\n \n {renderItem ? (\n renderItem(item, selected)\n ) : (\n \n \n {_get(item, labelField)}\n \n \n )}\n \n \n );\n },\n [\n accessibilityLabel,\n activeColor,\n currentValue,\n font,\n itemAccessibilityLabelField,\n itemContainerStyle,\n itemTestIDField,\n itemTextStyle,\n labelField,\n onSelect,\n renderItem,\n valueField,\n ]\n );\n\n const renderSearch = useCallback(() => {\n if (search) {\n if (renderInputSearch) {\n return renderInputSearch((text) => {\n if (onChangeText) {\n setSearchText(text);\n onChangeText(text);\n }\n onSearch(text);\n });\n } else {\n return (\n {\n if (onChangeText) {\n setSearchText(e);\n onChangeText(e);\n }\n onSearch(e);\n }}\n placeholderTextColor=\"gray\"\n iconStyle={[{ tintColor: iconColor }, iconStyle]}\n />\n );\n }\n }\n return null;\n }, [\n accessibilityLabel,\n font,\n iconColor,\n iconStyle,\n inputSearchStyle,\n onChangeText,\n onSearch,\n renderInputSearch,\n search,\n searchPlaceholder,\n testID,\n searchText,\n ]);\n\n const _renderList = useCallback(\n (isTopPosition: boolean) => {\n const isInverted = !inverted ? false : isTopPosition;\n\n const _renderListHelper = () => {\n return (\n index.toString()}\n showsVerticalScrollIndicator={showsVerticalScrollIndicator}\n />\n );\n };\n\n return (\n \n \n {isInverted && _renderListHelper()}\n {renderSearch()}\n {!isInverted && _renderListHelper()}\n \n \n );\n },\n [\n _renderItem,\n accessibilityLabel,\n flatListProps,\n listData,\n inverted,\n renderSearch,\n scrollIndex,\n showsVerticalScrollIndicator,\n testID,\n ]\n );\n\n const _renderModal = useCallback(() => {\n if (visible && position) {\n const { isFull, width, height, top, bottom, left } = position;\n\n const onAutoPosition = () => {\n if (keyboardHeight > 0) {\n return bottom < keyboardHeight + height;\n }\n\n return bottom < (search ? 150 : 100);\n };\n\n if (width && top && bottom) {\n const styleVertical: ViewStyle = {\n left: left,\n maxHeight: maxHeight,\n minHeight: minHeight,\n };\n const isTopPosition =\n dropdownPosition === 'auto'\n ? onAutoPosition()\n : dropdownPosition === 'top';\n\n let keyboardStyle: ViewStyle = {};\n\n let extendHeight = !isTopPosition ? top : bottom;\n if (\n keyboardAvoiding &&\n keyboardHeight > 0 &&\n isTopPosition &&\n dropdownPosition === 'auto'\n ) {\n extendHeight = keyboardHeight;\n }\n\n return (\n \n \n \n \n \n {_renderList(isTopPosition)}\n \n \n \n \n \n );\n }\n return null;\n }\n return null;\n }, [\n visible,\n search,\n position,\n keyboardHeight,\n maxHeight,\n minHeight,\n dropdownPosition,\n keyboardAvoiding,\n showOrClose,\n styleContainerVertical,\n backgroundColor,\n containerStyle,\n styleHorizontal,\n _renderList,\n ]);\n\n return (\n \n {_renderDropdown()}\n {_renderModal()}\n \n );\n });\n\nexport default DropdownComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n mainWrap: {\n justifyContent: 'center',\n },\n container: {\n flexShrink: 1,\n backgroundColor: 'white',\n borderWidth: 0.5,\n borderColor: '#EEEEEE',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n flex1: {\n flex: 1,\n },\n flexShrink: {\n flexShrink: 1,\n },\n wrapTop: {\n justifyContent: 'flex-end',\n },\n dropdown: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n dropdownInside: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: 35,\n },\n title: {\n marginVertical: 5,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n wrapItem: {\n marginBottom: 0.5,\n },\n item: {\n padding: 17,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n textItem: {\n flex: 1,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n icon: {\n width: 20,\n height: 20,\n },\n input: {\n borderWidth: 0.5,\n borderColor: '#DDDDDD',\n paddingHorizontal: 8,\n marginBottom: 8,\n margin: 6,\n height: 45,\n },\n rowSelectedItem: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n flexWrap: 'wrap',\n },\n selectedItem: {\n padding: 8,\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 0.5,\n borderColor: 'gray',\n paddingHorizontal: 8,\n marginVertical: 6,\n marginRight: 8,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n selectedTextItem: {\n marginLeft: 5,\n color: 'gray',\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n selectedTextLeftItem: {\n fontSize: 12,\n color: 'gray',\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n fullScreen: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport _assign from 'lodash/assign';\nimport _differenceWith from 'lodash/differenceWith';\nimport _get from 'lodash/get';\nimport React, {\n JSXElementConstructor,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardEvent,\n Modal,\n StyleSheet,\n Text,\n TouchableHighlight,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StatusBar,\n} from 'react-native';\nimport { useDetectDevice } from '../../toolkits';\nimport { useDeviceOrientation } from '../../useDeviceOrientation';\nimport CInput from '../TextInput';\nimport { MultiSelectProps } from './model';\nimport { styles } from './styles';\n\nconst { isTablet } = useDetectDevice;\nconst ic_down = require('../../assets/down.png');\nconst statusBarHeight: number = StatusBar.currentHeight || 0;\n\nconst MultiSelectComponent: (\n props: MultiSelectProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const orientation = useDeviceOrientation();\n const {\n testID,\n itemTestIDField,\n onChange,\n data = [],\n value,\n style = {},\n labelField,\n valueField,\n searchField,\n selectedStyle,\n selectedTextStyle,\n itemContainerStyle,\n itemTextStyle,\n iconStyle,\n selectedTextProps = {},\n activeColor = '#F6F7F8',\n containerStyle,\n fontFamily,\n placeholderStyle,\n iconColor = 'gray',\n inputSearchStyle,\n searchPlaceholder,\n placeholder = 'Select item',\n search = false,\n maxHeight = 340,\n minHeight = 0,\n maxSelect,\n disable = false,\n keyboardAvoiding = true,\n inside = false,\n inverted = true,\n renderItem,\n renderLeftIcon,\n renderRightIcon,\n renderSelectedItem,\n renderInputSearch,\n onFocus,\n onBlur,\n showsVerticalScrollIndicator = true,\n dropdownPosition = 'auto',\n flatListProps,\n alwaysRenderSelectedItem = false,\n searchQuery,\n backgroundColor,\n onChangeText,\n confirmSelectItem,\n confirmUnSelectItem,\n onConfirmSelectItem,\n accessibilityLabel,\n itemAccessibilityLabelField,\n visibleSelectedItem = true,\n mode = 'default',\n excludeItems = [],\n excludeSearchItems = [],\n } = props;\n\n const ref = useRef(null);\n const [visible, setVisible] = useState(false);\n const [currentValue, setCurrentValue] = useState([]);\n const [listData, setListData] = useState(data);\n const [, setKey] = useState(Math.random());\n const [position, setPosition] = useState();\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n const [searchText, setSearchText] = useState('');\n\n const { width: W, height: H } = Dimensions.get('window');\n const styleContainerVertical: ViewStyle = useMemo(() => {\n return {\n backgroundColor: 'rgba(0,0,0,0.1)',\n alignItems: 'center',\n };\n }, []);\n const styleHorizontal: ViewStyle = useMemo(() => {\n return {\n width: orientation === 'LANDSCAPE' ? W / 2 : '100%',\n alignSelf: 'center',\n };\n }, [W, orientation]);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n useEffect(() => {\n return eventClose;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const excludeData = useCallback(\n (data: any[]) => {\n if (excludeItems.length > 0) {\n const getData = _differenceWith(\n data,\n excludeItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n return getData || [];\n } else {\n return data || [];\n }\n },\n [excludeItems, valueField]\n );\n\n useEffect(() => {\n const filterData = excludeData(data);\n setListData([...filterData]);\n\n if (searchText) {\n onSearch(searchText);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, searchText]);\n\n const eventOpen = () => {\n if (!disable) {\n setVisible(true);\n if (onFocus) {\n onFocus();\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n }\n };\n\n const eventClose = () => {\n if (!disable) {\n setVisible(false);\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n const font = useCallback(() => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n }, [fontFamily]);\n\n const getValue = useCallback(() => {\n setCurrentValue(value ? [...value] : []);\n }, [value]);\n\n const _measure = useCallback(() => {\n if (ref && ref?.current) {\n ref.current.measureInWindow((pageX, pageY, width, height) => {\n let isFull = isTablet\n ? false\n : mode === 'modal' || orientation === 'LANDSCAPE';\n\n if (mode === 'auto') {\n isFull = false;\n }\n\n const top = isFull ? 20 : height + pageY + 2;\n const bottom = H - top + height;\n const left = I18nManager.isRTL ? W - width - pageX : pageX;\n\n setPosition({\n isFull,\n width: Math.floor(width),\n top: Math.floor(top + statusBarHeight),\n bottom: Math.floor(bottom - statusBarHeight),\n left: Math.floor(left),\n height: Math.floor(height),\n });\n });\n }\n }, [H, W, orientation, mode]);\n\n const onKeyboardDidShow = useCallback(\n (e: KeyboardEvent) => {\n _measure();\n setKeyboardHeight(e.endCoordinates.height);\n },\n [_measure]\n );\n\n const onKeyboardDidHide = useCallback(() => {\n setKeyboardHeight(0);\n _measure();\n }, [_measure]);\n\n useEffect(() => {\n const susbcriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n onKeyboardDidShow\n );\n const susbcriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n onKeyboardDidHide\n );\n\n return () => {\n if (typeof susbcriptionKeyboardDidShow?.remove === 'function') {\n susbcriptionKeyboardDidShow.remove();\n }\n\n if (typeof susbcriptionKeyboardDidHide?.remove === 'function') {\n susbcriptionKeyboardDidHide.remove();\n }\n };\n }, [onKeyboardDidHide, onKeyboardDidShow]);\n\n useEffect(() => {\n getValue();\n }, [getValue, value]);\n\n const showOrClose = useCallback(() => {\n if (!disable) {\n const visibleStatus = !visible;\n\n if (keyboardHeight > 0 && !visibleStatus) {\n return Keyboard.dismiss();\n }\n\n _measure();\n setVisible(visibleStatus);\n const filterData = excludeData(data);\n setListData(filterData);\n\n if (visibleStatus) {\n if (onFocus) {\n onFocus();\n }\n } else {\n if (onBlur) {\n onBlur();\n }\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disable,\n keyboardHeight,\n visible,\n _measure,\n data,\n searchText,\n onFocus,\n onBlur,\n ]);\n\n const onSearch = useCallback(\n (text: string) => {\n if (text.length > 0) {\n const defaultFilterFunction = (e: any) => {\n const item = _get(e, searchField || labelField)\n ?.toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const key = text\n .toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return item.indexOf(key) >= 0;\n };\n\n const propSearchFunction = (e: any) => {\n const labelText = _get(e, searchField || labelField);\n\n return searchQuery?.(text, labelText);\n };\n\n const dataSearch = data.filter(\n searchQuery ? propSearchFunction : defaultFilterFunction\n );\n\n if (excludeSearchItems.length > 0 || excludeItems.length > 0) {\n const excludeSearchData = _differenceWith(\n dataSearch,\n excludeSearchItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n\n const filterData = excludeData(excludeSearchData);\n setListData(filterData);\n } else {\n setListData(dataSearch);\n }\n } else {\n const filterData = excludeData(data);\n setListData(filterData);\n }\n },\n [\n data,\n searchQuery,\n excludeSearchItems,\n excludeItems,\n searchField,\n labelField,\n valueField,\n excludeData,\n ]\n );\n\n const onSelect = useCallback(\n (item: any) => {\n const newCurrentValue = [...currentValue];\n const index = newCurrentValue.findIndex(\n (e) => e === _get(item, valueField)\n );\n if (index > -1) {\n newCurrentValue.splice(index, 1);\n } else {\n if (maxSelect) {\n if (newCurrentValue.length < maxSelect) {\n newCurrentValue.push(_get(item, valueField));\n }\n } else {\n newCurrentValue.push(_get(item, valueField));\n }\n }\n\n if (onConfirmSelectItem) {\n if (index > -1) {\n if (confirmUnSelectItem) {\n onConfirmSelectItem(newCurrentValue);\n } else {\n onChange(newCurrentValue);\n }\n } else {\n if (confirmSelectItem) {\n onConfirmSelectItem(newCurrentValue);\n } else {\n onChange(newCurrentValue);\n }\n }\n } else {\n onChange(newCurrentValue);\n }\n\n setKey(Math.random());\n },\n [\n confirmSelectItem,\n confirmUnSelectItem,\n currentValue,\n maxSelect,\n onChange,\n onConfirmSelectItem,\n valueField,\n ]\n );\n\n const _renderDropdown = () => {\n return (\n \n \n {renderLeftIcon?.(visible)}\n \n {placeholder}\n \n {renderRightIcon ? (\n renderRightIcon(visible)\n ) : (\n \n )}\n \n \n );\n };\n\n const checkSelected = useCallback(\n (item: any) => {\n const index = currentValue.findIndex(\n (e) => e === _get(item, valueField)\n );\n return index > -1;\n },\n [currentValue, valueField]\n );\n\n const _renderItem = useCallback(\n ({ item, index }: { item: any; index: number }) => {\n const selected = checkSelected(item);\n _assign(item, { _index: index });\n return (\n onSelect(item)}\n >\n \n {renderItem ? (\n renderItem(item, selected)\n ) : (\n \n \n {_get(item, labelField)}\n \n \n )}\n \n \n );\n },\n [\n accessibilityLabel,\n activeColor,\n checkSelected,\n font,\n itemAccessibilityLabelField,\n itemContainerStyle,\n itemTestIDField,\n itemTextStyle,\n labelField,\n onSelect,\n renderItem,\n ]\n );\n\n const renderSearch = useCallback(() => {\n if (search) {\n if (renderInputSearch) {\n return renderInputSearch((text) => {\n if (onChangeText) {\n setSearchText(text);\n onChangeText(text);\n }\n onSearch(text);\n });\n } else {\n return (\n {\n if (onChangeText) {\n setSearchText(e);\n onChangeText(e);\n }\n onSearch(e);\n }}\n placeholderTextColor=\"gray\"\n iconStyle={[{ tintColor: iconColor }, iconStyle]}\n />\n );\n }\n }\n return null;\n }, [\n accessibilityLabel,\n font,\n iconColor,\n iconStyle,\n inputSearchStyle,\n onChangeText,\n onSearch,\n renderInputSearch,\n search,\n searchPlaceholder,\n testID,\n ]);\n\n const _renderList = useCallback(\n (isTopPosition: boolean) => {\n const isInverted = !inverted ? false : isTopPosition;\n\n const _renderListHelper = () => {\n return (\n index.toString()}\n showsVerticalScrollIndicator={showsVerticalScrollIndicator}\n />\n );\n };\n\n return (\n \n \n {isInverted && _renderListHelper()}\n {renderSearch()}\n {!isInverted && _renderListHelper()}\n \n \n );\n },\n [\n _renderItem,\n accessibilityLabel,\n flatListProps,\n listData,\n inverted,\n renderSearch,\n showsVerticalScrollIndicator,\n testID,\n ]\n );\n\n const _renderModal = useCallback(() => {\n if (visible && position) {\n const { isFull, width, height, top, bottom, left } = position;\n\n const onAutoPosition = () => {\n if (keyboardHeight > 0) {\n return bottom < keyboardHeight + height;\n }\n\n return bottom < (search ? 150 : 100);\n };\n\n if (width && top && bottom) {\n const styleVertical: ViewStyle = {\n left: left,\n maxHeight: maxHeight,\n minHeight: minHeight,\n };\n const isTopPosition =\n dropdownPosition === 'auto'\n ? onAutoPosition()\n : dropdownPosition === 'top';\n\n let keyboardStyle: ViewStyle = {};\n\n let extendHeight = !isTopPosition ? top : bottom;\n if (\n keyboardAvoiding &&\n keyboardHeight > 0 &&\n isTopPosition &&\n dropdownPosition === 'auto'\n ) {\n extendHeight = keyboardHeight;\n }\n\n return (\n \n \n \n \n \n {_renderList(isTopPosition)}\n \n \n \n \n \n );\n }\n return null;\n }\n return null;\n }, [\n visible,\n search,\n position,\n keyboardHeight,\n maxHeight,\n minHeight,\n dropdownPosition,\n keyboardAvoiding,\n showOrClose,\n styleContainerVertical,\n backgroundColor,\n containerStyle,\n styleHorizontal,\n _renderList,\n ]);\n\n const unSelect = (item: any) => {\n if (!disable) {\n onSelect(item);\n }\n };\n\n const _renderItemSelected = (inside: boolean) => {\n const list = data.filter((e: any) => {\n const check = value?.indexOf(_get(e, valueField));\n if (check !== -1) {\n return e;\n }\n });\n\n return (\n \n {list.map((e) => {\n if (renderSelectedItem) {\n return (\n unSelect(e)}\n >\n {renderSelectedItem(e, () => {\n unSelect(e);\n })}\n \n );\n } else {\n return (\n unSelect(e)}\n >\n \n \n {_get(e, labelField)}\n \n \n ⓧ\n \n \n \n );\n }\n })}\n \n );\n };\n\n const _renderInside = () => {\n return (\n \n {_renderDropdownInside()}\n {_renderModal()}\n \n );\n };\n\n const _renderDropdownInside = () => {\n return (\n \n \n {renderLeftIcon?.()}\n {value && value?.length > 0 ? (\n _renderItemSelected(true)\n ) : (\n \n {placeholder}\n \n )}\n {renderRightIcon ? (\n renderRightIcon()\n ) : (\n \n )}\n \n \n );\n };\n\n if (inside) {\n return _renderInside();\n }\n\n return (\n <>\n \n {_renderDropdown()}\n {_renderModal()}\n \n {(!visible || alwaysRenderSelectedItem) &&\n visibleSelectedItem &&\n _renderItemSelected(false)}\n \n );\n });\n\nexport default MultiSelectComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n dropdown: {\n width: 58,\n paddingHorizontal: 6,\n height: 26,\n },\n container: {\n width: 60,\n },\n item: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n padding: 6,\n alignItems: 'center',\n },\n image: {\n width: 20,\n height: 20,\n marginRight: 3,\n marginVertical: 4,\n },\n selectedTextStyle: {\n flex: 1,\n fontSize: 12,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n});\n","import React, {\n useImperativeHandle,\n useMemo,\n useRef,\n ReactElement,\n JSXElementConstructor,\n} from 'react';\nimport { Image, View, Text } from 'react-native';\nimport Dropdown from '../Dropdown';\nimport { SelectCountryProps } from './model';\nimport { styles } from './styles';\n\nconst SelectCountryComponent: (\n props: SelectCountryProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const {\n data,\n value,\n valueField,\n labelField,\n imageField,\n selectedTextStyle,\n imageStyle,\n } = props;\n const ref: any = useRef(null);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n const eventOpen = () => {\n ref.current.open();\n };\n\n const eventClose = () => {\n ref.current.close();\n };\n\n const _renderItem = (item: any) => {\n return (\n \n \n \n {item[labelField]}\n \n \n );\n };\n\n const selectItem: any = useMemo(() => {\n const index = data.findIndex((e: any) => e[valueField] === value);\n return data[index];\n }, [data, valueField, value]);\n\n return (\n {\n if (selectItem?.image) {\n return (\n \n );\n } else {\n return null;\n }\n }}\n />\n );\n });\n\nexport default SelectCountryComponent;\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n});\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-valuemax\": 1,\n \"aria-valuemin\": 0,\n ref: forwardedRef,\n role: \"progressbar\",\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: 'rotate(0deg)'\n },\n '100%': {\n transform: 'rotate(360deg)'\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nvar ReactNativeFeatureFlags = {\n isLayoutAnimationEnabled: () => true,\n shouldEmitW3CPointerEvents: () => false,\n shouldPressibilityUseW3CPointerEventsForHover: () => false,\n animatedShouldDebounceQueueFlush: () => false,\n animatedShouldUseSingleOp: () => false\n};\nexport default ReactNativeFeatureFlags;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport invariant from 'fbjs/lib/invariant';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\n// TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless === true ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */\nvar __nativeAnimationIdCount = 1; /* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n// $FlowFixMe\nvar singleOpQueue = [];\nvar useSingleOpBatching = false;\nPlatform.OS === 'android' && !!(NativeAnimatedModule != null && NativeAnimatedModule.queueAndExecuteBatchedOperations) && ReactNativeFeatureFlags.animatedShouldUseSingleOp();\nvar flushQueueTimeout = null;\nvar eventListenerGetValueCallbacks = {};\nvar eventListenerAnimationFinishedCallbacks = {};\nvar globalEventEmitterGetValueListener = null;\nvar globalEventEmitterAnimationFinishedListener = null;\nvar nativeOps = useSingleOpBatching ? function () {\n var apis = ['createAnimatedNode',\n // 1\n 'updateAnimatedNodeConfig',\n // 2\n 'getValue',\n // 3\n 'startListeningToAnimatedNodeValue',\n // 4\n 'stopListeningToAnimatedNodeValue',\n // 5\n 'connectAnimatedNodes',\n // 6\n 'disconnectAnimatedNodes',\n // 7\n 'startAnimatingNode',\n // 8\n 'stopAnimation',\n // 9\n 'setAnimatedNodeValue',\n // 10\n 'setAnimatedNodeOffset',\n // 11\n 'flattenAnimatedNodeOffset',\n // 12\n 'extractAnimatedNodeOffset',\n // 13\n 'connectAnimatedNodeToView',\n // 14\n 'disconnectAnimatedNodeFromView',\n // 15\n 'restoreDefaultValues',\n // 16\n 'dropAnimatedNode',\n // 17\n 'addAnimatedEventToView',\n // 18\n 'removeAnimatedEventFromView',\n // 19\n 'addListener',\n // 20\n 'removeListener' // 21\n ];\n\n return apis.reduce((acc, functionName, i) => {\n // These indices need to be kept in sync with the indices in native (see NativeAnimatedModule in Java, or the equivalent for any other native platform).\n // $FlowFixMe[prop-missing]\n acc[functionName] = i + 1;\n return acc;\n }, {});\n}() : NativeAnimatedModule;\n\n/**\n * Wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods, and automatic queue management on Android\n */\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (saveValueCallback) {\n eventListenerGetValueCallbacks[tag] = saveValueCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.getValue, tag);\n } else {\n API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() && flushQueueTimeout) {\n clearTimeout(flushQueueTimeout);\n }\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(nativeOps, 'Native animated module is not available');\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush()) {\n var prevTimeout = flushQueueTimeout;\n clearImmediate(prevTimeout);\n flushQueueTimeout = setImmediate(API.flushQueue);\n } else {\n API.flushQueue();\n }\n },\n flushQueue: function flushQueue() {\n /*\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n flushQueueTimeout = null;\n // Early returns before calling any APIs\n if (useSingleOpBatching && singleOpQueue.length === 0) {\n return;\n }\n if (!useSingleOpBatching && queue.length === 0) {\n return;\n }\n if (useSingleOpBatching) {\n // Set up event listener for callbacks if it's not set up\n if (\n !globalEventEmitterGetValueListener ||\n !globalEventEmitterAnimationFinishedListener\n ) {\n setupGlobalEventEmitterListeners();\n }\n // Single op batching doesn't use callback functions, instead we\n // use RCTDeviceEventEmitter. This reduces overhead of sending lots of\n // JSI functions across to native code; but also, TM infrastructure currently\n // does not support packing a function into native arrays.\n NativeAnimatedModule.queueAndExecuteBatchedOperations?.(singleOpQueue);\n singleOpQueue.length = 0;\n } else {\n Platform.OS === 'android' && NativeAnimatedModule.startOperationBatch?.();\n for (let q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n queue.length = 0;\n Platform.OS === 'android' &&\n NativeAnimatedModule.finishOperationBatch?.();\n }\n */\n },\n queueOperation: function queueOperation(fn) {\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 if (useSingleOpBatching) {\n // Get the command ID from the queued function, and push that ID and any arguments needed to execute the operation\n // $FlowFixMe: surprise, fn is actually a number\n singleOpQueue.push(fn, ...args);\n return;\n }\n\n // If queueing is explicitly on, *or* the queue has not yet\n // been flushed, use the queue. This is to prevent operations\n // from being executed out of order.\n if (queueOperations || queue.length !== 0) {\n queue.push(() => fn(...args));\n } else {\n fn(...args);\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n },\n updateAnimatedNodeConfig: function updateAnimatedNodeConfig(tag, config) {\n invariant(nativeOps, 'Native animated module is not available');\n //if (nativeOps.updateAnimatedNodeConfig) {\n // API.queueOperation(nativeOps.updateAnimatedNodeConfig, tag, config);\n //}\n },\n\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (endCallback) {\n eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config);\n } else {\n API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config, endCallback);\n }\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopAnimation, animationId);\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodeFromView, nodeTag, viewTag);\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n // Backwards compat with older native runtimes, can be removed later.\n if (nativeOps.restoreDefaultValues != null) {\n API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.dropAnimatedNode, tag);\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.addAnimatedEventToView, viewTag, eventName, eventMapping);\n },\n removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.removeAnimatedEventFromView, viewTag, eventName, animatedNodeTag);\n }\n};\nfunction setupGlobalEventEmitterListeners() {\n globalEventEmitterGetValueListener = RCTDeviceEventEmitter.addListener('onNativeAnimatedModuleGetValue', function (params) {\n var tag = params.tag;\n var callback = eventListenerGetValueCallbacks[tag];\n if (!callback) {\n return;\n }\n callback(params.value);\n delete eventListenerGetValueCallbacks[tag];\n });\n globalEventEmitterAnimationFinishedListener = RCTDeviceEventEmitter.addListener('onNativeAnimatedModuleAnimationFinished', function (params) {\n var animationId = params.animationId;\n var callback = eventListenerAnimationFinishedCallbacks[animationId];\n if (!callback) {\n return;\n }\n callback(params);\n delete eventListenerAnimationFinishedCallbacks[animationId];\n });\n}\n\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric or color property that\n * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).\n */\nvar SUPPORTED_COLOR_STYLES = {\n backgroundColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderStartColor: true,\n borderTopColor: true,\n color: true,\n tintColor: true\n};\nvar SUPPORTED_STYLES = _objectSpread(_objectSpread({}, SUPPORTED_COLOR_STYLES), {}, {\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n opacity: true,\n transform: true,\n zIndex: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n});\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};\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\nfunction isSupportedColorStyleProp(prop) {\n return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n}\nfunction isSupportedStyleProp(prop) {\n return SUPPORTED_STYLES.hasOwnProperty(prop);\n}\nfunction isSupportedTransformProp(prop) {\n return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n}\nfunction isSupportedInterpolationParam(param) {\n return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n}\nfunction validateTransform(configs) {\n configs.forEach(config => {\n if (!isSupportedTransformProp(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\nfunction validateStyles(styles) {\n for (var _key2 in styles) {\n if (!isSupportedStyleProp(_key2)) {\n throw new Error(\"Style property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\nfunction validateInterpolation(config) {\n for (var _key3 in config) {\n if (!isSupportedInterpolationParam(_key3)) {\n throw new Error(\"Interpolation property '\" + _key3 + \"' is not supported by native animated module\");\n }\n }\n}\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\nfunction generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\nvar _warnedMissingNativeAnimated = false;\nfunction 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 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 `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n return false;\n }\n return config.useNativeDriver || false;\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 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}\nexport { API, isSupportedColorStyleProp, isSupportedStyleProp, isSupportedTransformProp, isSupportedInterpolationParam, addWhitelistedStyleProp, addWhitelistedTransformProp, addWhitelistedInterpolationParam, validateStyles, validateTransform, validateInterpolation, generateNewNodeTag, generateNewAnimationId, assertNativeAnimatedModule, shouldUseNativeDriver, transformDataType };\nexport default {\n API,\n isSupportedColorStyleProp,\n isSupportedStyleProp,\n isSupportedTransformProp,\n isSupportedInterpolationParam,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion\n // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAnimatedModule);\n }\n return nativeEventEmitter;\n }\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function get(name) {\n return null;\n}\nexport function getEnforcing(name) {\n var module = get(name);\n invariant(module != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. \" + 'Verify that a module by this name is registered in the native binary.');\n return module;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n\n// Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\nclass AnimatedNode {\n __attach() {}\n __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n __getValue() {}\n __getAnimatedValue() {\n return this.__getValue();\n }\n __addChild(child) {}\n __removeChild(child) {}\n __getChildren() {\n return [];\n }\n\n /* Methods and props used by native Animated impl */\n\n constructor() {\n this._listeners = {};\n }\n __makeNative(platformConfig) {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n this._platformConfig = platformConfig;\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue#addlistener\n */\n addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue#removelistener\n */\n removeListener(id) {\n delete this._listeners[id];\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n */\n removeAllListeners() {\n this._listeners = {};\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n hasListeners() {\n return !!Object.keys(this._listeners).length;\n }\n _startListeningToNativeValueUpdates() {\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n this._stopListeningForNativeValueUpdates();\n }\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n this.__onAnimatedValueUpdateReceived(data.value);\n });\n }\n __onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n }\n __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value\n });\n }\n }\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n this.__nativeAnimatedValueListener.remove();\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n __getNativeTag() {\n var _this$__nativeTag;\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 if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n var config = this.__getNativeConfig();\n if (this._platformConfig) {\n config.platformConfig = this._platformConfig;\n }\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, config);\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n return nativeTag;\n }\n __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n }\n toJSON() {\n return this.__getValue();\n }\n __getPlatformConfig() {\n return this._platformConfig;\n }\n __setPlatformConfig(platformConfig) {\n this._platformConfig = platformConfig;\n }\n}\nexport default AnimatedNode;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nclass AnimatedWithChildren extends AnimatedNode {\n constructor() {\n super();\n this._children = [];\n }\n __makeNative(platformConfig) {\n if (!this.__isNative) {\n this.__isNative = true;\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n child.__makeNative(platformConfig);\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n super.__makeNative(platformConfig);\n }\n __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n this._children.push(child);\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative(this.__getPlatformConfig());\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n __removeChild(child) {\n var index = this._children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n this._children.splice(index, 1);\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n __getChildren() {\n return this._children;\n }\n __callListeners(value) {\n super.__callListeners(value);\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n}\nexport default AnimatedWithChildren;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from '@react-native/normalize-colors';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar linear = t => t;\n\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n var outputRange = config.outputRange;\n var inputRange = config.inputRange;\n if (__DEV__) {\n checkInfiniteRange('outputRange', outputRange);\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 }\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n var extrapolateRight = 'extend';\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n return 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}\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input;\n\n // Extrapolate\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n if (outputMin === outputMax) {\n return outputMin;\n }\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Easing\n result = easing(result);\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n return result;\n}\nfunction colorToRgba(input) {\n var normalizedColor = normalizeColor(input);\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\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}\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange);\n\n // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n var outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `value.match()` can return\n * `null`. Need to guard against this possibility. */\n value.match(stringShapeRegex).forEach((number, i) => {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n /* $FlowFixMe[incompatible-call] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */.map((value, i) => {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n });\n\n // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return input => {\n var i = 0;\n // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n return outputRange[0].replace(stringShapeRegex, () => {\n var val = +interpolations[i++](input);\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n return String(val);\n });\n };\n}\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\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}\nfunction findRange(input, inputRange) {\n var i;\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n var message = 'inputRange must be monotonically non-decreasing ' + String(arr);\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1], message);\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[incompatible-type] (>=0.13.0) - In the addition expression\n * below this comment, one or both of the operands may be something that\n * doesn't cleanly convert to a string, like undefined, null, and object,\n * etc. If you really mean this implicit string conversion, you can do\n * something like String(myThing) */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\nclass AnimatedInterpolation extends AnimatedWithChildren {\n // Export for testing.\n\n constructor(parent, config) {\n super();\n this._parent = parent;\n this._config = config;\n this._interpolation = createInterpolation(config);\n }\n __makeNative(platformConfig) {\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n var parentValue = this._parent.__getValue();\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._parent.__addChild(this);\n }\n __detach() {\n this._parent.__removeChild(this);\n super.__detach();\n }\n __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n }\n __getNativeConfig() {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n }\n}\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n function findAnimatedStyles(node) {\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n findAnimatedStyles(rootNode);\n // $FlowFixMe[prop-missing]\n animatedStyles.forEach(animatedStyle => animatedStyle.update());\n}\n\n/**\n * Some operations are executed only on batch end, which is _mostly_ scheduled when\n * Animated component props change. For some of the changes which require immediate execution\n * (e.g. setValue), we create a separate batch in case none is scheduled.\n */\nfunction _executeAsAnimatedBatch(id, operation) {\n NativeAnimatedAPI.setWaitingForIdentifier(id);\n operation();\n NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n}\n\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue\n */\nclass AnimatedValue extends AnimatedWithChildren {\n constructor(value, config) {\n super();\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value - this._offset;\n });\n }\n this.stopAnimation();\n super.__detach();\n }\n __getValue() {\n return this._value + this._offset;\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue#setvalue\n */\n setValue(value) {\n if (this._animation) {\n this._animation.stop();\n this._animation = null;\n }\n this._updateValue(value, !this.__isNative /* don't perform a flush for natively driven values */);\n\n if (this.__isNative) {\n _executeAsAnimatedBatch(this.__getNativeTag().toString(), () => NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value));\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue#setoffset\n */\n setOffset(offset) {\n this._offset = offset;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n */\n flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#extractoffset\n */\n extractOffset() {\n this._offset += this._value;\n this._value = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue#stopanimation\n */\n stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n if (callback) {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n } else {\n callback(this.__getValue());\n }\n }\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue#resetanimation\n */\n resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), this._startingValue);\n }\n }\n __onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false /*flush*/);\n }\n\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue#animate\n */\n animate(animation, callback) {\n var handle = null;\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, value => {\n // Natively driven animations will never call into that callback\n this._updateValue(value, true /* flush */);\n }, result => {\n this._animation = null;\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n callback && callback(result);\n }, previousAnimation, this);\n }\n\n /**\n * Typically only used internally.\n */\n stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n\n /**\n * Typically only used internally.\n */\n track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n // Make sure that the tracking animation starts executing\n this._tracking && this._tracking.update();\n }\n _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._value = value;\n if (flush) {\n _flush(this);\n }\n super.__callListeners(this.__getValue());\n }\n __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n }\n}\nexport default AnimatedValue;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n var traverse = (value, path) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.');\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n traverse(argMapping[0].nativeEvent, []);\n if (viewRef != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewRef, eventName, mapping);\n });\n }\n return {\n detach() {\n if (viewRef != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewRef, eventName,\n // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n };\n}\nfunction validateMapping(argMapping, args) {\n var validate = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n return;\n }\n if (typeof recEvt === 'number') {\n invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n return;\n }\n invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n for (var mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\nexport class AnimatedEvent {\n constructor(argMapping, config) {\n this._listeners = [];\n this._argMapping = argMapping;\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {\n useNativeDriver: false\n };\n }\n if (config.listener) {\n this.__addListener(config.listener);\n }\n this._callListeners = this._callListeners.bind(this);\n this._attachedEvent = null;\n this.__isNative = shouldUseNativeDriver(config);\n }\n __addListener(callback) {\n this._listeners.push(callback);\n }\n __removeListener(callback) {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n }\n __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n }\n __getHandler() {\n var _this = this;\n if (this.__isNative) {\n if (__DEV__) {\n var _validatedMapping = false;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (!_validatedMapping) {\n validateMapping(_this._argMapping, args);\n _validatedMapping = true;\n }\n _this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n var validatedMapping = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (__DEV__ && !validatedMapping) {\n validateMapping(_this._argMapping, args);\n validatedMapping = true;\n }\n var traverse = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n * when Flow v0.120 was deployed. To see the error, delete this\n * comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n _this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n _this._callListeners(...args);\n };\n }\n _callListeners() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n this._listeners.forEach(listener => listener(...args));\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nclass AnimatedTransform extends AnimatedWithChildren {\n constructor(transforms) {\n super();\n this._transforms = transforms;\n }\n __makeNative() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n super.__makeNative();\n }\n __getValue() {\n return this._transforms.map(transform => {\n var result = {};\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n return result;\n });\n }\n __getAnimatedValue() {\n return this._transforms.map(transform => {\n var result = {};\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n return result;\n });\n }\n __attach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n __detach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n super.__detach();\n }\n __getNativeConfig() {\n var transConfigs = [];\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value)\n });\n }\n }\n });\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n }\n}\nexport default AnimatedTransform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport StyleSheet from '../../../../exports/StyleSheet';\nvar flattenStyle = StyleSheet.flatten;\nfunction createAnimatedStyle(inputStyle) {\n var style = flattenStyle(inputStyle);\n var animatedStyles = {};\n for (var key in style) {\n var value = style[key];\n if (key === 'transform' && Array.isArray(value)) {\n animatedStyles[key] = new AnimatedTransform(value);\n } else if (value instanceof AnimatedNode) {\n animatedStyles[key] = value;\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n animatedStyles[key] = createAnimatedStyle(value);\n }\n }\n return animatedStyles;\n}\nclass AnimatedStyle extends AnimatedWithChildren {\n constructor(style) {\n super();\n this._inputStyle = style;\n this._style = createAnimatedStyle(style);\n }\n\n // Recursively get values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n for (var key in style) {\n var value = style[key];\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n return updatedStyle;\n }\n __getValue() {\n return [this._inputStyle, this._walkStyleAndGetValues(this._style)];\n }\n\n // Recursively get animated values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n for (var key in style) {\n var value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n super.__makeNative();\n }\n __getNativeConfig() {\n var styleConfig = {};\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n style.__makeNative();\n styleConfig[styleKey] = style.__getNativeTag();\n }\n }\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n }\n}\nexport default AnimatedStyle;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nclass AnimatedProps extends AnimatedNode {\n constructor(props, callback) {\n super();\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n this._props = props;\n this._callback = callback;\n this.__attach();\n }\n __getValue() {\n var props = {};\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n return props;\n }\n __getAnimatedValue() {\n var props = {};\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n return props;\n }\n __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n update() {\n this._callback();\n }\n __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = this._animatedView;\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n }\n __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = this._animatedView;\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n }\n __restoreDefaultValues() {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n __getNativeConfig() {\n var propsConfig = {};\n for (var propKey in this._props) {\n var value = this._props[propKey];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n return {\n type: 'props',\n props: propsConfig\n };\n }\n}\nexport default AnimatedProps;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedProps from './nodes/AnimatedProps';\nimport { AnimatedEvent } from './AnimatedEvent';\nimport useRefEffect from '../Utilities/useRefEffect';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport { useCallback, useEffect, useMemo, useReducer, useRef } from 'react';\nimport useLayoutEffect from '../../../modules/useLayoutEffect';\nexport default function useAnimatedProps(props) {\n var _useReducer = useReducer(count => count + 1, 0),\n scheduleUpdate = _useReducer[1];\n var onUpdateRef = useRef(null);\n\n // TODO: Only invalidate `node` if animated props or `style` change. In the\n // previous implementation, we permitted `style` to override props with the\n // same name property name as styles, so we can probably continue doing that.\n // The ordering of other props *should* not matter.\n var node = useMemo(() => new AnimatedProps(props, () => onUpdateRef.current == null ? void 0 : onUpdateRef.current()), [props]);\n useAnimatedPropsLifecycle(node);\n\n // TODO: This \"effect\" does three things:\n //\n // 1) Call `setNativeView`.\n // 2) Update `onUpdateRef`.\n // 3) Update listeners for `AnimatedEvent` props.\n //\n // Ideally, each of these would be separat \"effects\" so that they are not\n // unnecessarily re-run when irrelevant dependencies change. For example, we\n // should be able to hoist all `AnimatedEvent` props and only do #3 if either\n // the `AnimatedEvent` props change or `instance` changes.\n //\n // But there is no way to transparently compose three separate callback refs,\n // so we just combine them all into one for now.\n var refEffect = useCallback(instance => {\n // NOTE: This may be called more often than necessary (e.g. when `props`\n // changes), but `setNativeView` already optimizes for that.\n node.setNativeView(instance);\n\n // NOTE: This callback is only used by the JavaScript animation driver.\n onUpdateRef.current = () => {\n // Schedule an update for this component to update `reducedProps`,\n // but do not compute it immediately. If a parent also updated, we\n // need to merge those new props in before updating.\n scheduleUpdate();\n };\n var target = getEventTarget(instance);\n var events = [];\n for (var propName in props) {\n var propValue = props[propName];\n if (propValue instanceof AnimatedEvent && propValue.__isNative) {\n propValue.__attach(target, propName);\n events.push([propName, propValue]);\n }\n }\n return () => {\n onUpdateRef.current = null;\n for (var _i = 0, _events = events; _i < _events.length; _i++) {\n var _events$_i = _events[_i],\n _propName = _events$_i[0],\n _propValue = _events$_i[1];\n _propValue.__detach(target, _propName);\n }\n };\n }, [props, node]);\n var callbackRef = useRefEffect(refEffect);\n return [reduceAnimatedProps(node), callbackRef];\n}\nfunction reduceAnimatedProps(node) {\n // Force `collapsable` to be false so that the native view is not flattened.\n // Flattened views cannot be accurately referenced by the native driver.\n return _objectSpread(_objectSpread({}, node.__getValue()), {}, {\n collapsable: false\n });\n}\n\n/**\n * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`\n * and `__detach`. However, this is more complicated because `AnimatedProps`\n * uses reference counting to determine when to recursively detach its children\n * nodes. So in order to optimize this, we avoid detaching until the next attach\n * unless we are unmounting.\n */\nfunction useAnimatedPropsLifecycle(node) {\n var prevNodeRef = useRef(null);\n var isUnmountingRef = useRef(false);\n useEffect(() => {\n // It is ok for multiple components to call `flushQueue` because it noops\n // if the queue is empty. When multiple animated components are mounted at\n // the same time. Only first component flushes the queue and the others will noop.\n NativeAnimatedHelper.API.flushQueue();\n });\n useLayoutEffect(() => {\n isUnmountingRef.current = false;\n return () => {\n isUnmountingRef.current = true;\n };\n }, []);\n useLayoutEffect(() => {\n node.__attach();\n if (prevNodeRef.current != null) {\n var prevNode = prevNodeRef.current;\n // TODO: Stop restoring default values (unless `reset` is called).\n prevNode.__restoreDefaultValues();\n prevNode.__detach();\n prevNodeRef.current = null;\n }\n return () => {\n if (isUnmountingRef.current) {\n // NOTE: Do not restore default values on unmount, see D18197735.\n node.__detach();\n } else {\n prevNodeRef.current = node;\n }\n };\n }, [node]);\n}\nfunction getEventTarget(instance) {\n return typeof instance === 'object' && typeof (instance == null ? void 0 : instance.getScrollableNode) === 'function' ?\n // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n instance.getScrollableNode() : instance;\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction isFabricInstance(instance) {\n var _instance$getScrollRe;\n return hasFabricHandle(instance) ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as instance would actually be the underlying host component and the above check\n // would be sufficient.\n hasFabricHandle(instance == null ? void 0 : instance.getNativeScrollRef == null ? void 0 : instance.getNativeScrollRef()) || hasFabricHandle(instance == null ? void 0 : instance.getScrollResponder == null ? void 0 : (_instance$getScrollRe = instance.getScrollResponder()) == null ? void 0 : _instance$getScrollRe.getNativeScrollRef == null ? void 0 : _instance$getScrollRe.getNativeScrollRef());\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction hasFabricHandle(instance) {\n var _instance$_internalIn, _instance$_internalIn2;\n // eslint-disable-next-line dot-notation\n return (instance == null ? void 0 : (_instance$_internalIn = instance['_internalInstanceHandle']) == null ? void 0 : (_instance$_internalIn2 = _instance$_internalIn.stateNode) == null ? void 0 : _instance$_internalIn2.canonical) != null;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport { useCallback, useRef } from 'react';\n/**\n * Constructs a callback ref that provides similar semantics as `useEffect`. The\n * supplied `effect` callback will be called with non-null component instances.\n * The `effect` callback can also optionally return a cleanup function.\n *\n * When a component is updated or unmounted, the cleanup function is called. The\n * `effect` callback will then be called again, if applicable.\n *\n * When a new `effect` callback is supplied, the previously returned cleanup\n * function will be called before the new `effect` callback is called with the\n * same instance.\n *\n * WARNING: The `effect` callback should be stable (e.g. using `useCallback`).\n */\nexport default function useRefEffect(effect) {\n var cleanupRef = useRef(undefined);\n return useCallback(instance => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (instance != null) {\n cleanupRef.current = effect(instance);\n }\n }, [effect]);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport useAnimatedProps from './useAnimatedProps';\nimport useMergeRefs from '../Utilities/useMergeRefs';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport * as React from 'react';\n/**\n * Experimental implementation of `createAnimatedComponent` that is intended to\n * be compatible with concurrent rendering.\n */\nexport default function createAnimatedComponent(Component) {\n return /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _useAnimatedProps = useAnimatedProps(props),\n reducedProps = _useAnimatedProps[0],\n callbackRef = _useAnimatedProps[1];\n var ref = useMergeRefs(callbackRef, forwardedRef);\n\n // Some components require explicit passthrough values for animation\n // to work properly. For example, if an animated component is\n // transformed and Pressable, onPress will not work after transform\n // without these passthrough values.\n // $FlowFixMe[prop-missing]\n var passthroughAnimatedPropExplicitValues = reducedProps.passthroughAnimatedPropExplicitValues,\n style = reducedProps.style;\n var _ref = passthroughAnimatedPropExplicitValues !== null && passthroughAnimatedPropExplicitValues !== void 0 ? passthroughAnimatedPropExplicitValues : {},\n passthroughStyle = _ref.style,\n passthroughProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var mergedStyle = [style, passthroughStyle];\n return /*#__PURE__*/React.createElement(Component, _extends({}, reducedProps, passthroughProps, {\n style: mergedStyle,\n ref: ref\n }));\n });\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport { useCallback } from 'react';\n/**\n * Constructs a new ref that forwards new values to each of the given refs. The\n * given refs will always be invoked in the order that they are supplied.\n *\n * WARNING: A known problem of merging refs using this approach is that if any\n * of the given refs change, the returned callback ref will also be changed. If\n * the returned callback ref is supplied as a `ref` to a React element, this may\n * lead to problems with the given refs being invoked more times than desired.\n */\nexport default function useMergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return useCallback(current => {\n for (var _i = 0, _refs = refs; _i < _refs.length; _i++) {\n var ref = _refs[_i];\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(current);\n } else {\n ref.current = current;\n }\n }\n }\n }, [...refs] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport FlatList from '../../../../exports/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar FlatListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport Image from '../../../../exports/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Image);","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport ScrollView from '../../../../exports/ScrollView';\nimport createAnimatedComponent from '../createAnimatedComponent';\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar ScrollViewWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(ScrollViewWithEventThrottle);","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport SectionList from '../../../../exports/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar SectionListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport Text from '../../../../exports/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Text);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport View from '../../../../exports/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(View);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedAddition extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedAddition;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedDiffClamp extends AnimatedWithChildren {\n constructor(a, min, max) {\n super();\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __getValue() {\n var value = this._a.__getValue();\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n __attach() {\n this._a.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n }\n}\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedDivision extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._warnedAboutDivideByZero = false;\n if (b === 0 || b instanceof AnimatedNode && b.__getValue() === 0) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n var a = this._a.__getValue();\n var b = this._b.__getValue();\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n }\n // Passing infinity/NaN to Fabric will cause a native crash\n return 0;\n }\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedDivision;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedModulo extends AnimatedWithChildren {\n constructor(a, modulus) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n }\n}\nexport default AnimatedModulo;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedMultiplication extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedSubtraction extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\nclass AnimatedTracking extends AnimatedNode {\n constructor(value, parent, animationClass, animationConfig, callback) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n this.__attach();\n }\n __makeNative() {\n this.__isNative = true;\n this._parent.__makeNative();\n super.__makeNative();\n this._value.__makeNative();\n }\n __getValue() {\n return this._parent.__getValue();\n }\n __attach() {\n this._parent.__addChild(this);\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n }\n __detach() {\n this._parent.__removeChild(this);\n super.__detach();\n }\n update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n }\n __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n var animationConfig = animation.__getNativeAnimationConfig();\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n }\n}\nexport default AnimatedTracking;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\nclass AnimatedValueXY extends AnimatedWithChildren {\n constructor(valueIn) {\n super();\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(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 this._listeners = {};\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n */\n setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n */\n setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n */\n flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n */\n extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n */\n stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n */\n addListener(callback) {\n var id = String(_uniqueId++);\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__getValue());\n };\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n */\n 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 /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n }\n}\nexport default AnimatedValueXY;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar startNativeAnimationNextId = 1;\n\n// Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\nclass Animation {\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {}\n stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n }\n // Helper function for subclasses to make sure onEnd is only called once.\n __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n __startNativeAnimation(animatedValue) {\n var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n try {\n var config = this.__getNativeAnimationConfig();\n animatedValue.__makeNative(config.platformConfig);\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), config,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__debouncedOnEnd.bind(this));\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n }\n }\n}\nexport default Animation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nclass DecayAnimation extends Animation {\n constructor(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n super();\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 }\n __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n }\n 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 if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n 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 this._onUpdate(value);\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({\n finished: true\n });\n return;\n }\n this._lastValue = value;\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n stop() {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({\n finished: false\n });\n }\n}\nexport default DecayAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\nfunction fromOrigamiTensionAndFriction(tension, friction) {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction)\n };\n}\nfunction fromBouncinessAndSpeed(bounciness, speed) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n function b3Friction3(x) {\n return 0.00000045 * Math.pow(x, 3) - 0.000332 * Math.pow(x, 2) + 0.1078 * x + 5.84;\n }\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n var b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n var s = normalize(speed / 1.7, 0, 20);\n var bouncyTension = projectNormal(s, 0.5, 200);\n var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction)\n };\n}\nexport default {\n fromOrigamiTensionAndFriction,\n fromBouncinessAndSpeed\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nclass SpringAnimation extends Animation {\n constructor(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n super();\n this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n this._toValue = config.toValue;\n this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\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 if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n var _config$stiffness, _config$damping, _config$mass;\n invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n var _config$bounciness, _config$speed;\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n var _config$tension, _config$friction;\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n this._stiffness = _springConfig.stiffness;\n this._damping = _springConfig.damping;\n this._mass = 1;\n }\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n __getNativeAnimationConfig() {\n var _this$_initialVelocit;\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig\n };\n }\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n if (previousAnimation instanceof SpringAnimation) {\n var internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity;\n // Set the initial velocity to the last velocity\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n var start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n };\n\n // If this._delay is more than 0, we start after the timeout.\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n getInternalState() {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime\n };\n }\n\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n onUpdate() {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n var MAX_STEPS = 64;\n var now = Date.now();\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n var deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n var c = this._damping;\n var m = this._mass;\n var k = this._stiffness;\n var v0 = -this._initialVelocity;\n var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n var position = 0.0;\n var velocity = 0.0;\n var t = this._frameTime;\n if (zeta < 1) {\n // Under damped\n var envelope = Math.exp(-zeta * omega0 * t);\n position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t));\n // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n var _envelope = Math.exp(-omega0 * t);\n position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n this._onUpdate(position);\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n }\n\n // Conditions for stopping the spring animation\n var isOvershooting = false;\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n var isDisplacement = true;\n if (this._stiffness !== 0) {\n isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n if (isOvershooting || isVelocity && isDisplacement) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n this._onUpdate(this._toValue);\n }\n this.__debouncedOnEnd({\n finished: true\n });\n return;\n }\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({\n finished: false\n });\n }\n}\nexport default SpringAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Easing from '../../../../exports/Easing';\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nvar _easeInOut;\nfunction easeInOut() {\n if (!_easeInOut) {\n _easeInOut = Easing.inOut(Easing.ease);\n }\n return _easeInOut;\n}\nclass TimingAnimation extends Animation {\n constructor(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n super();\n this._toValue = config.toValue;\n this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n }\n __getNativeAnimationConfig() {\n var frameDuration = 1000.0 / 60.0;\n var frames = [];\n var numFrames = Math.round(this._duration / frameDuration);\n for (var frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig\n };\n }\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n var start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n this.__debouncedOnEnd({\n finished: true\n });\n } else {\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.onUpdate.bind(this));\n }\n }\n };\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n onUpdate() {\n var now = Date.now();\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n }\n this.__debouncedOnEnd({\n finished: true\n });\n return;\n }\n this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({\n finished: false\n });\n }\n}\nexport default TimingAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport normalizeColor from '@react-native/normalize-colors';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nvar defaultColor = {\n r: 0,\n g: 0,\n b: 0,\n a: 1.0\n};\nvar _uniqueId = 1;\nvar processColorObject = color => {\n return color;\n};\n\n/* eslint no-bitwise: 0 */\nfunction processColor(color) {\n if (color === undefined || color === null) {\n return null;\n }\n if (isRgbaValue(color)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n return color;\n }\n var normalizedColor = normalizeColor(\n // $FlowIgnore[incompatible-cast] - Type is verified above\n color);\n if (normalizedColor === undefined || normalizedColor === null) {\n return null;\n }\n if (typeof normalizedColor === 'object') {\n var processedColorObj = processColorObject(normalizedColor);\n if (processedColorObj != null) {\n return processedColorObj;\n }\n } else if (typeof normalizedColor === 'number') {\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 {\n r,\n g,\n b,\n a\n };\n }\n return null;\n}\nfunction isRgbaValue(value) {\n return value && typeof value.r === 'number' && typeof value.g === 'number' && typeof value.b === 'number' && typeof value.a === 'number';\n}\nfunction isRgbaAnimatedValue(value) {\n return value && value.r instanceof AnimatedValue && value.g instanceof AnimatedValue && value.b instanceof AnimatedValue && value.a instanceof AnimatedValue;\n}\nexport default class AnimatedColor extends AnimatedWithChildren {\n constructor(valueIn, config) {\n super();\n this._listeners = {};\n var value = valueIn !== null && valueIn !== void 0 ? valueIn : defaultColor;\n if (isRgbaAnimatedValue(value)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n var rgbaAnimatedValue = value;\n this.r = rgbaAnimatedValue.r;\n this.g = rgbaAnimatedValue.g;\n this.b = rgbaAnimatedValue.b;\n this.a = rgbaAnimatedValue.a;\n } else {\n var _processColor;\n var processedColor = // $FlowIgnore[incompatible-cast] - Type is verified above\n (_processColor = processColor(value)) !== null && _processColor !== void 0 ? _processColor : defaultColor;\n var initColor = defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n initColor = processedColor;\n } else {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n this.nativeColor = processedColor;\n }\n this.r = new AnimatedValue(initColor.r);\n this.g = new AnimatedValue(initColor.g);\n this.b = new AnimatedValue(initColor.b);\n this.a = new AnimatedValue(initColor.a);\n }\n if (this.nativeColor || config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n */\n setValue(value) {\n var _processColor2;\n var shouldUpdateNodeConfig = false;\n if (this.__isNative) {\n var nativeTag = this.__getNativeTag();\n NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n }\n var processedColor = (_processColor2 = processColor(value)) !== null && _processColor2 !== void 0 ? _processColor2 : defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-type] - Type is verified above\n var rgbaValue = processedColor;\n this.r.setValue(rgbaValue.r);\n this.g.setValue(rgbaValue.g);\n this.b.setValue(rgbaValue.b);\n this.a.setValue(rgbaValue.a);\n if (this.nativeColor != null) {\n this.nativeColor = null;\n shouldUpdateNodeConfig = true;\n }\n } else {\n // $FlowIgnore[incompatible-type] - Type is verified above\n var nativeColor = processedColor;\n if (this.nativeColor !== nativeColor) {\n this.nativeColor = nativeColor;\n shouldUpdateNodeConfig = true;\n }\n }\n if (this.__isNative) {\n var _nativeTag = this.__getNativeTag();\n if (shouldUpdateNodeConfig) {\n NativeAnimatedAPI.updateAnimatedNodeConfig(_nativeTag, this.__getNativeConfig());\n }\n NativeAnimatedAPI.unsetWaitingForIdentifier(_nativeTag.toString());\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n */\n setOffset(offset) {\n this.r.setOffset(offset.r);\n this.g.setOffset(offset.g);\n this.b.setOffset(offset.b);\n this.a.setOffset(offset.a);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n */\n flattenOffset() {\n this.r.flattenOffset();\n this.g.flattenOffset();\n this.b.flattenOffset();\n this.a.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n */\n extractOffset() {\n this.r.extractOffset();\n this.g.extractOffset();\n this.b.extractOffset();\n this.a.extractOffset();\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n */\n addListener(callback) {\n var id = String(_uniqueId++);\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__getValue());\n };\n this._listeners[id] = {\n r: this.r.addListener(jointCallback),\n g: this.g.addListener(jointCallback),\n b: this.b.addListener(jointCallback),\n a: this.a.addListener(jointCallback)\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n */\n removeListener(id) {\n this.r.removeListener(this._listeners[id].r);\n this.g.removeListener(this._listeners[id].g);\n this.b.removeListener(this._listeners[id].b);\n this.a.removeListener(this._listeners[id].a);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n */\n removeAllListeners() {\n this.r.removeAllListeners();\n this.g.removeAllListeners();\n this.b.removeAllListeners();\n this.a.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n */\n stopAnimation(callback) {\n this.r.stopAnimation();\n this.g.stopAnimation();\n this.b.stopAnimation();\n this.a.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any animation and resets the value to its original.\n */\n resetAnimation(callback) {\n this.r.resetAnimation();\n this.g.resetAnimation();\n this.b.resetAnimation();\n this.a.resetAnimation();\n callback && callback(this.__getValue());\n }\n __getValue() {\n if (this.nativeColor != null) {\n return this.nativeColor;\n } else {\n return \"rgba(\" + this.r.__getValue() + \", \" + this.g.__getValue() + \", \" + this.b.__getValue() + \", \" + this.a.__getValue() + \")\";\n }\n }\n __attach() {\n this.r.__addChild(this);\n this.g.__addChild(this);\n this.b.__addChild(this);\n this.a.__addChild(this);\n super.__attach();\n }\n __detach() {\n this.r.__removeChild(this);\n this.g.__removeChild(this);\n this.b.__removeChild(this);\n this.a.__removeChild(this);\n super.__detach();\n }\n __makeNative(platformConfig) {\n this.r.__makeNative(platformConfig);\n this.g.__makeNative(platformConfig);\n this.b.__makeNative(platformConfig);\n this.a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getNativeConfig() {\n return {\n type: 'color',\n r: this.r.__getNativeTag(),\n g: this.g.__getNativeTag(),\n b: this.b.__getNativeTag(),\n a: this.a.__getNativeTag(),\n nativeColor: this.nativeColor\n };\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete(...arguments);\n callback && callback(...arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n var configY = _objectSpread({}, config);\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aX, aY], {\n stopTogether: false\n });\n } else if (value instanceof AnimatedColor) {\n var configR = _objectSpread({}, config);\n var configG = _objectSpread({}, config);\n var configB = _objectSpread({}, config);\n var configA = _objectSpread({}, config);\n for (var _key in config) {\n var _config$_key = config[_key],\n r = _config$_key.r,\n g = _config$_key.g,\n b = _config$_key.b,\n a = _config$_key.a;\n if (r !== undefined && g !== undefined && b !== undefined && a !== undefined) {\n configR[_key] = r;\n configG[_key] = g;\n configB[_key] = b;\n configA[_key] = a;\n }\n }\n var aR = anim(value.r, configR);\n var aG = anim(value.g, configG);\n var aB = anim(value.b, configB);\n var aA = anim(value.a, configA);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aR, aG, aB, aA], {\n stopTogether: false\n });\n }\n return null;\n};\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n current++;\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n animations[current].start(onComplete);\n };\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\nvar parallel = function parallel(animations, config) {\n var doneCount = 0;\n // Make sure we only call stop() at most once for each animation\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n animations.forEach((animation, idx) => {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false\n });\n};\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }));\n};\nvar loop = function loop(animation, // $FlowFixMe[prop-missing]\n_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n return event;\n } else {\n return function () {\n typeof event === 'function' && event(...arguments);\n listener(...arguments);\n };\n }\n}\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n\n// All types of animated nodes that represent scalar numbers and can be interpolated (etc)\n\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated\n */\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated#value\n */\n Value: AnimatedValue,\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\n ValueXY: AnimatedValueXY,\n /**\n * Value class for driving color animations.\n */\n Color: AnimatedColor,\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated#interpolation\n */\n Interpolation: AnimatedInterpolation,\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated#node\n */\n Node: AnimatedNode,\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated#decay\n */\n decay,\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated#timing\n */\n timing,\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated#spring\n */\n spring,\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated#add\n */\n add,\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated#subtract\n */\n subtract,\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated#divide\n */\n divide,\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated#multiply\n */\n multiply,\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated#modulo\n */\n modulo,\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated#diffclamp\n */\n diffClamp,\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated#delay\n */\n delay,\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated#sequence\n */\n sequence,\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated#parallel\n */\n parallel,\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated#stagger\n */\n stagger,\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated#loop\n */\n loop,\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated#event\n */\n event,\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated#createanimatedcomponent\n */\n createAnimatedComponent,\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated#attachnativeevent\n */\n attachNativeEvent,\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated#forkevent\n */\n forkEvent,\n unforkEvent,\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\n\n/**\n * Animations are a source of flakiness in snapshot testing. This mock replaces\n * animation functions from AnimatedImplementation with empty animations for\n * predictability in tests. When possible the animation will run immediately\n * to the final state.\n */\n\n// Prevent any callback invocation from recursively triggering another\n// callback, which may trigger another animation\nvar inAnimationCallback = false;\nfunction mockAnimationStart(start) {\n return callback => {\n var guardedCallback = callback == null ? callback : function () {\n if (inAnimationCallback) {\n console.warn('Ignoring recursive animation callback when running mock animations');\n return;\n }\n inAnimationCallback = true;\n try {\n callback(...arguments);\n } finally {\n inAnimationCallback = false;\n }\n };\n start(guardedCallback);\n };\n}\nvar emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n }\n};\nvar mockCompositeAnimation = animations => _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: mockAnimationStart(callback => {\n animations.forEach(animation => animation.start());\n callback == null ? void 0 : callback({\n finished: true\n });\n })\n});\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: mockAnimationStart(callback => {\n anyValue.setValue(config.toValue);\n callback == null ? void 0 : callback({\n finished: true\n });\n })\n });\n};\nvar timing = function timing(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: mockAnimationStart(callback => {\n anyValue.setValue(config.toValue);\n callback == null ? void 0 : callback({\n finished: true\n });\n })\n });\n};\nvar decay = function decay(value, config) {\n return emptyAnimation;\n};\nvar sequence = function sequence(animations) {\n return mockCompositeAnimation(animations);\n};\nvar parallel = function parallel(animations, config) {\n return mockCompositeAnimation(animations);\n};\nvar delay = function delay(time) {\n return emptyAnimation;\n};\nvar stagger = function stagger(time, animations) {\n return mockCompositeAnimation(animations);\n};\nvar loop = function loop(animation, // $FlowFixMe[prop-missing]\n_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n return emptyAnimation;\n};\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Color: AnimatedColor,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event: AnimatedImplementation.event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent\n};","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport Platform from '../../../exports/Platform';\nimport FlatList from './components/AnimatedFlatList';\nimport Image from './components/AnimatedImage';\nimport ScrollView from './components/AnimatedScrollView';\nimport SectionList from './components/AnimatedSectionList';\nimport Text from './components/AnimatedText';\nimport View from './components/AnimatedView';\nimport AnimatedMock from './AnimatedMock';\nimport AnimatedImplementation from './AnimatedImplementation';\nvar Animated = Platform.isTesting ? AnimatedMock : AnimatedImplementation;\nexport default _objectSpread({\n FlatList,\n Image,\n ScrollView,\n SectionList,\n Text,\n View\n}, Animated);","/**\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 */\n\nimport Animated from '../../vendor/react-native/Animated/Animated';\nexport default Animated;","import RCTDeviceEventEmitter from '../../vendor/react-native/EventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\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 = {};\nvar shouldInit = canUseDOM;\nfunction update() {\n if (!canUseDOM) {\n return;\n }\n var win = window;\n var height;\n var width;\n\n /**\n * iOS does not update viewport dimensions on keyboard open/close.\n * window.visualViewport(https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport)\n * is used instead of document.documentElement.clientHeight (which remains as a fallback)\n */\n if (win.visualViewport) {\n var visualViewport = win.visualViewport;\n /**\n * We are multiplying by scale because height and width from visual viewport\n * also react to pinch zoom, and become smaller when zoomed. But it is not desired\n * behaviour, since originally documentElement client height and width were used,\n * and they do not react to pinch zoom.\n */\n height = Math.round(visualViewport.height * visualViewport.scale);\n width = Math.round(visualViewport.width * visualViewport.scale);\n } else {\n var docEl = win.document.documentElement;\n height = docEl.clientHeight;\n width = docEl.clientWidth;\n }\n dimensions.window = {\n fontScale: 1,\n height,\n scale: win.devicePixelRatio || 1,\n width\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n}\nfunction handleResize() {\n update();\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(handler => handler(dimensions));\n }\n}\nexport default class Dimensions {\n static get(dimension) {\n if (shouldInit) {\n shouldInit = false;\n update();\n }\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n }\n static 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 if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n }\n static addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: () => {\n this.removeEventListener(type, handler);\n }\n };\n }\n static removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(_handler => _handler !== handler);\n }\n }\n}\nif (canUseDOM) {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', handleResize, false);\n } else {\n window.addEventListener('resize', handleResize, false);\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\nimport _bezier from './bezier';\nvar ease;\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nclass Easing {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n static step0(n) {\n return n > 0 ? 1 : 0;\n }\n\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n static step1(n) {\n return n >= 1 ? 1 : 0;\n }\n\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n static linear(t) {\n return t;\n }\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n static ease(t) {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n return ease(t);\n }\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n static quad(t) {\n return t * t;\n }\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n static cubic(t) {\n return t * t * t;\n }\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n static poly(n) {\n return t => Math.pow(t, n);\n }\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n static sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n static circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n static exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n static elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n var p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n }\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n static back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n return t => t * t * ((s + 1) * t - s);\n }\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n static bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n return 7.5625 * _t * _t + 0.75;\n }\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n static bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n\n /**\n * Runs an easing function forwards.\n */\n static in(easing) {\n return easing;\n }\n\n /**\n * Runs an easing function backwards.\n */\n static out(easing) {\n return t => 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 static inOut(easing) {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n }\n}\nexport default Easing;","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n\n'use strict';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\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';\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\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 }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\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 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 return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;","/**\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 */\n\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\n/*\n * @returns {bool} true if different, false if equal\n */\nvar deepDiffer = function deepDiffer(one, two, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = -1;\n }\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal\n return false;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n var len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (var ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\n return true;\n }\n }\n } else {\n for (var key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\n return true;\n }\n }\n for (var twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\nexport default deepDiffer;","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 cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\", \"strictMode\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport deepDiffer from '../deepDiffer';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nimport VirtualizedList from '../VirtualizedList';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport memoizeOne from 'memoize-one';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */ // removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews) {\n return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns) {\n return numColumns !== null && numColumns !== void 0 ? numColumns : 1;\n}\nfunction isArrayLike(data) {\n // $FlowExpectedError[incompatible-use]\n return typeof Object(data).length === 'number';\n}\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent {\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n constructor(_props) {\n super(_props);\n this._virtualizedListPairs = [];\n this._captureRef = ref => {\n this._listRef = ref;\n };\n this._getItem = (data, index) => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n var ret = [];\n for (var kk = 0; kk < numColumns; kk++) {\n var itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n var _item = data[itemIndex];\n ret.push(_item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n this._getItemCount = data => {\n // Legacy behavior of FlatList was to forward \"undefined\" length if invalid\n // data like a non-arraylike object is passed. VirtualizedList would then\n // coerce this, and the math would work out to no-op. For compatibility, if\n // invalid data is passed, we tell VirtualizedList there are zero items\n // available to prevent it from trying to read from the invalid data\n // (without propagating invalidly typed data).\n if (data != null && isArrayLike(data)) {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n this._keyExtractor = (items, index) => {\n var _this$props$keyExtrac;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : defaultKeyExtractor;\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items.map((item, kk) => keyExtractor(item, index * numColumns + kk)).join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n this._renderer = (ListItemComponent, renderItem, columnWrapperStyle, numColumns, extraData\n // $FlowFixMe[missing-local-annot]\n ) => {\n var cols = numColumnsOrDefault(numColumns);\n var render = props => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n var renderProp = info => {\n if (cols > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.row, columnWrapperStyle]\n }, _item2.map((it, kk) => {\n var element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: _index * cols + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return render(info);\n }\n };\n return ListItemComponent ? {\n ListItemComponent: renderProp\n } : {\n renderItem: renderProp\n };\n };\n this._memoizedRenderer = memoizeOne(this._renderer);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n this._checkProps(this.props);\n }\n // $FlowFixMe[missing-local-annot]\n _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n }\n _pushMultiColumnViewable(arr, v) {\n var _this$props$keyExtrac2;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item,\n key: keyExtractor(item, index),\n index\n }));\n });\n }\n _createOnViewableItemsChanged(onViewableItemsChanged\n // $FlowFixMe[missing-local-annot]\n ) {\n return info => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(v => this._pushMultiColumnViewable(viewableItems, v));\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({\n viewableItems,\n changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n // $FlowFixMe[missing-local-annot]\n\n render() {\n var _this$props = this.props,\n numColumns = _this$props.numColumns,\n columnWrapperStyle = _this$props.columnWrapperStyle,\n _removeClippedSubviews = _this$props.removeClippedSubviews,\n _this$props$strictMod = _this$props.strictMode,\n strictMode = _this$props$strictMod === void 0 ? false : _this$props$strictMod,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var renderer = strictMode ? this._memoizedRenderer : this._renderer;\n return (\n /*#__PURE__*/\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs,\n removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n }, renderer(this.props.ListItemComponent, this.props.renderItem, columnWrapperStyle, numColumns, this.props.extraData)))\n );\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar I18nManager = {\n allowRTL() {\n return;\n },\n forceRTL() {\n return;\n },\n getConstants() {\n return {\n isRTL: false\n };\n }\n};\nexport default I18nManager;","/**\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 */\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 */\n\nvar dataUriPattern = /^data:/;\nexport class ImageUriCache {\n static has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n }\n static add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp,\n refCount: 1\n };\n }\n }\n static remove(uri) {\n var entries = ImageUriCache._entries;\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n }\n // Free up entries when the cache is \"full\"\n ImageUriCache._cleanUpIfNeeded();\n }\n static _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(uri => {\n var entry = entries[uri];\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n }\n}\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort(requestId) {\n var image = requests[\"\" + requestId];\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n function callback() {\n var image = requests[\"\" + requestId];\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n has(uri) {\n return ImageUriCache.has(uri);\n },\n load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n image.onload = e => {\n // avoid blocking the main thread\n var onDecode = () => onLoad({\n nativeEvent: e\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 image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n prefetch(uri) {\n return new Promise((resolve, reject) => {\n ImageLoader.load(uri, () => {\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(uris) {\n var result = {};\n uris.forEach(u => {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n};\nexport default ImageLoader;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-label\", \"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport { createBoxShadowValue } from '../StyleSheet/preprocess';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\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}\nfunction extractNonStandardStyleProps(style, blurRadius, filterId, tintColorProp) {\n var flatStyle = StyleSheet.flatten(style);\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor;\n if (flatStyle.resizeMode) {\n warnOnce('Image.style.resizeMode', 'Image: style.resizeMode is deprecated. Please use props.resizeMode.');\n }\n if (flatStyle.tintColor) {\n warnOnce('Image.style.tintColor', 'Image: style.tintColor is deprecated. Please use props.tintColor.');\n }\n\n // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n var filters = [];\n var _filter = null;\n if (filter) {\n filters.push(filter);\n }\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n if (shadowOffset) {\n var shadowString = createBoxShadowValue(flatStyle);\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n if ((tintColorProp || tintColor) && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n if (filters.length > 0) {\n _filter = filters.join(' ');\n }\n return [resizeMode, _filter, tintColor];\n}\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\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}\nfunction resolveAssetUri(source) {\n var uri = null;\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n if (asset == null) {\n throw new Error(\"Image: asset with ID \\\"\" + source + \"\\\" could not be found. Please check the image source or packager.\");\n }\n var scale = asset.scales[0];\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get();\n // Get the scale which is closest to the preferred scale\n scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\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 if (uri) {\n var match = uri.match(svgDataUriPattern);\n // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n return uri;\n}\nvar Image = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _ariaLabel = props['aria-label'],\n 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, _excluded);\n var ariaLabel = _ariaLabel || accessibilityLabel;\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 var _React$useState = React.useState(() => {\n var uri = resolveAssetUri(source);\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n if (isLoaded) {\n return LOADED;\n }\n }\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\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 var _extractNonStandardSt = extractNonStandardStyleProps(style, blurRadius, filterRef.current, props.tintColor),\n _resizeMode = _extractNonStandardSt[0],\n filter = _extractNonStandardSt[1],\n _tintColor = _extractNonStandardSt[2];\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var tintColor = props.tintColor || _tintColor;\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();\n\n // Accessibility image allows users to trigger the browser's image context menu\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: ariaLabel || '',\n style: styles.accessibilityImage$raw,\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\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 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 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 }\n\n // Image loading\n var uri = resolveAssetUri(source);\n React.useEffect(() => {\n abortPendingRequest();\n if (uri != null) {\n updateState(LOADING);\n if (onLoadStart) {\n onLoadStart();\n }\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n if (onLoad) {\n onLoad(e);\n }\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n \"aria-label\": ariaLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, style, styles.undo,\n // TEMP: avoid deprecated shadow props regression\n // until Image refactored to use createElement.\n {\n boxShadow: null\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage,\n filter\n }, backgroundSize != null && {\n backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image';\n\n// $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\nvar ImageWithStatics = Image;\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\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 undo: {\n // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n blurRadius: null,\n shadowColor: null,\n shadowOpacity: null,\n shadowOffset: null,\n shadowRadius: null,\n tintColor: null,\n // These styles are not supported\n overlayColor: null,\n resizeMode: null\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 accessibilityImage$raw: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\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',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nclass TaskQueue {\n constructor(_ref) {\n var onMoreTasks = _ref.onMoreTasks;\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{\n tasks: [],\n popable: true\n }];\n }\n enqueue(task) {\n this._getCurrentQueue().push(task);\n }\n enqueueTasks(tasks) {\n tasks.forEach(task => this.enqueue(task));\n }\n cancelTasks(tasksToCancel) {\n this._queueStack = this._queueStack.map(queue => _objectSpread(_objectSpread({}, queue), {}, {\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1)\n })).filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n hasTasksToProcess() {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext() {\n var queue = this._getCurrentQueue();\n if (queue.length) {\n var task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n task.run();\n } else {\n invariant(typeof task === 'function', 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' + JSON.stringify(task, null, 2));\n task();\n }\n } catch (e) {\n e.message = 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n _getCurrentQueue() {\n var stackIdx = this._queueStack.length - 1;\n var queue = this._queueStack[stackIdx];\n if (queue.popable && queue.tasks.length === 0 && stackIdx > 0) {\n this._queueStack.pop();\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n _genPromise(task) {\n var length = this._queueStack.push({\n tasks: [],\n popable: false\n });\n var stackIdx = length - 1;\n var stackItem = this._queueStack[stackIdx];\n task.gen().then(() => {\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n }).catch(ex => {\n setTimeout(() => {\n ex.message = \"TaskQueue: Error resolving Promise in task \" + task.name + \": \" + ex.message;\n throw ex;\n }, 0);\n });\n }\n}\nexport default TaskQueue;","/**\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 '../canUseDom';\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(() => {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\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) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nimport TaskQueue from './TaskQueue';\nimport EventEmitter from '../../vendor/react-native/vendor/emitter/EventEmitter';\nimport requestIdleCallback from '../../modules/requestIdleCallback';\nvar _emitter = new EventEmitter();\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions(task) {\n var tasks = [];\n var promise = new Promise(resolve => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + (task && task.name || '?')\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: () => {\n _taskQueue.cancelTasks(tasks);\n }\n };\n },\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle() {\n _scheduleUpdate();\n var handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n addListener: _emitter.addListener.bind(_emitter),\n /**\n *\n * @param deadline\n */\n setDeadline(deadline) {\n _deadline = deadline;\n }\n};\nvar _interactionSet = new Set();\nvar _addInteractionSet = new Set();\nvar _deleteInteractionSet = new Set();\nvar _taskQueue = new TaskQueue({\n onMoreTasks: _scheduleUpdate\n});\nvar _nextUpdateHandle = 0;\nvar _inc = 0;\nvar _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate);\n } else {\n _nextUpdateHandle = requestIdleCallback(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n var interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n var nextInteractionCount = _interactionSet.size;\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n if (nextInteractionCount === 0) {\n // It seems that we can't know the running time of the current event loop,\n // we can only calculate the running time of the current task queue.\n var begin = Date.now();\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (_deadline > 0 && Date.now() - begin >= _deadline) {\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\nexport default InteractionManager;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport dismissKeyboard from '../../modules/dismissKeyboard';\n\n// in the future we can use https://github.com/w3c/virtual-keyboard\nvar Keyboard = {\n isVisible() {\n return false;\n },\n addListener() {\n return {\n remove: () => {}\n };\n },\n dismiss() {\n dismissKeyboard();\n },\n removeAllListeners() {},\n removeListener() {}\n};\nexport default Keyboard;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDOM from '../../modules/canUseDom';\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\n }\n }\n React.useEffect(() => {\n if (canUseDOM) {\n return () => {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n return visible ? styles.container : styles.hidden;\n}\nfunction ModalAnimation(props) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onShow = props.onShow,\n visible = props.visible;\n var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n var wasVisible = React.useRef(false);\n var wasRendering = React.useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = React.useCallback(e => {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n }\n }, [onShow, visible]);\n React.useEffect(() => {\n if (wasRendering.current && !isRendering && onDismiss) {\n onDismiss();\n }\n wasRendering.current = isRendering;\n }, [isRendering, onDismiss]);\n React.useEffect(() => {\n if (visible) {\n setIsRendering(true);\n }\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children\n }) : null;\n}\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: 'translateY(0%)',\n animationKeyframes: {\n '0%': {\n transform: 'translateY(100%)'\n },\n '100%': {\n transform: 'translateY(0%)'\n }\n }\n },\n slideOut: {\n transform: 'translateY(100%)',\n animationKeyframes: {\n '0%': {\n transform: 'translateY(0%)'\n },\n '100%': {\n transform: 'translateY(100%)'\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"active\", \"children\", \"onRequestClose\", \"transparent\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nimport canUseDOM from '../../modules/canUseDom';\nvar ModalContent = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n React.useEffect(() => {\n if (canUseDOM) {\n var closeOnEscape = e => {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n document.addEventListener('keyup', closeOnEscape, false);\n return () => document.removeEventListener('keyup', closeOnEscape, false);\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(() => {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n \"aria-modal\": true,\n ref: forwardedRef,\n role: active ? 'dialog' : null,\n style: style\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\nimport canUseDOM from '../../modules/canUseDom';\n\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = () => {\n return createElement('div', {\n role: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n try {\n element.focus();\n } catch (e) {\n // Do nothing\n }\n return document.activeElement === element;\n}\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n return false;\n}\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n return false;\n}\nvar ModalFocusTrap = _ref => {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = React.useRef();\n var focusRef = React.useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n React.useEffect(() => {\n if (canUseDOM) {\n var trapFocus = () => {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n try {\n focusRef.current.trapFocusInProgress = true;\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n }\n // If we couldn't focus a new element then we need to focus onto the trap target\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n focusRef.current.lastFocusedElement = document.activeElement;\n };\n\n // Call the trapFocus callback at least once when this modal has been activated.\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return () => document.removeEventListener('focus', trapFocus, true);\n }\n }, [active]);\n\n // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n React.useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationType\", \"children\", \"onDismiss\", \"onRequestClose\", \"onShow\", \"transparent\", \"visible\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(modalId => {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n var index = activeModalStack.indexOf(modalId);\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\nvar Modal = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n var modalId = React.useMemo(() => uniqueModalIdentifier++, []);\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n var onDismissCallback = React.useCallback(() => {\n removeActiveModal(modalId);\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(() => {\n addActiveModal(modalId, setIsActive);\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(() => {\n return () => removeActiveModal(modalId);\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, _extends({}, rest, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }), children))));\n});\nexport default Modal;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport NativeEventEmitter from '../../vendor/react-native/EventEmitter/NativeEventEmitter';\nexport default NativeEventEmitter;","/**\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 */\n\nimport UIManager from '../UIManager';\n\n// NativeModules shim\nvar NativeModules = {\n UIManager\n};\nexport default NativeModules;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport Dimensions from '../Dimensions';\n\n/**\n * PixelRatio gives access to the device pixel density.\n */\nexport default class PixelRatio {\n /**\n * Returns the device pixel density.\n */\n static get() {\n return Dimensions.get('window').scale;\n }\n\n /**\n * No equivalent for Web\n */\n static getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar Platform = {\n OS: 'web',\n select: obj => 'web' in obj ? obj.web : obj.default,\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n return false;\n }\n};\nexport default Platform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nimport canUseDOM from '../canUseDom';\nvar emptyFunction = () => {};\nfunction supportsPassiveEvents() {\n var supported = false;\n // Check if browser supports event with passive listeners\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n if (canUseDOM) {\n try {\n var options = {};\n Object.defineProperty(options, 'passive', {\n get() {\n supported = true;\n return false;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n }\n return supported;\n}\nvar canUsePassiveEvents = supportsPassiveEvents();\nfunction getOptions(options) {\n if (options == null) {\n return false;\n }\n return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction normalizeEvent(event) {\n event.nativeEvent = event;\n event.persist = emptyFunction;\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n return event;\n}\n\n/**\n *\n */\nexport function addEventListener(target, type, listener, options) {\n var opts = getOptions(options);\n var compatListener = e => listener(normalizeEvent(e));\n target.addEventListener(type, compatListener, opts);\n return function removeEventListener() {\n if (target != null) {\n target.removeEventListener(type, compatListener, opts);\n }\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 */\n\nimport { addEventListener } from '../addEventListener';\nimport canUseDOM from '../canUseDom';\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n passive: true\n};\nvar captureOptions = {\n capture: true,\n passive: true\n};\nfunction restoreModality() {\n if (previousModality != null || previousActiveModality != null) {\n if (previousModality != null) {\n modality = previousModality;\n previousModality = null;\n }\n if (previousActiveModality != null) {\n activeModality = previousActiveModality;\n previousActiveModality = null;\n }\n callListeners();\n }\n}\nfunction onBlurWindow() {\n previousModality = modality;\n previousActiveModality = activeModality;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n callListeners();\n // for fallback events\n isEmulatingMouseEvents = false;\n}\nfunction onFocusWindow() {\n restoreModality();\n}\nfunction onKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n if (modality !== KEYBOARD) {\n modality = KEYBOARD;\n activeModality = KEYBOARD;\n callListeners();\n }\n}\nfunction onVisibilityChange() {\n if (document.visibilityState !== 'hidden') {\n restoreModality();\n }\n}\nfunction onPointerish(event) {\n var eventType = event.type;\n if (supportsPointerEvent()) {\n if (eventType === POINTERDOWN) {\n if (activeModality !== event.pointerType) {\n modality = event.pointerType;\n activeModality = event.pointerType;\n callListeners();\n }\n return;\n }\n if (eventType === POINTERMOVE) {\n if (modality !== event.pointerType) {\n modality = event.pointerType;\n callListeners();\n }\n return;\n }\n }\n // Fallback for non-PointerEvent environment\n else {\n if (!isEmulatingMouseEvents) {\n if (eventType === MOUSEDOWN) {\n if (activeModality !== MOUSE) {\n modality = MOUSE;\n activeModality = MOUSE;\n callListeners();\n }\n }\n if (eventType === MOUSEMOVE) {\n if (modality !== MOUSE) {\n modality = MOUSE;\n callListeners();\n }\n }\n }\n\n // Flag when browser may produce emulated events\n if (eventType === TOUCHSTART) {\n isEmulatingMouseEvents = true;\n if (event.touches && event.touches.length > 1) {\n isEmulatingMouseEvents = false;\n }\n if (activeModality !== TOUCH) {\n modality = TOUCH;\n activeModality = TOUCH;\n callListeners();\n }\n return;\n }\n\n // Remove flag after emulated events are finished or cancelled, and if an\n // event occurs that cuts short a touch event sequence.\n if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n isEmulatingMouseEvents = false;\n }\n }\n}\nif (canUseDOM) {\n // Window events\n addEventListener(window, BLUR, onBlurWindow, bubbleOptions);\n addEventListener(window, FOCUS, onFocusWindow, bubbleOptions);\n // Must be capture phase because 'stopPropagation' might prevent these\n // events bubbling to the document.\n addEventListener(document, KEYDOWN, onKeyDown, captureOptions);\n addEventListener(document, VISIBILITYCHANGE, onVisibilityChange, captureOptions);\n addEventListener(document, POINTERDOWN, onPointerish, captureOptions);\n addEventListener(document, POINTERMOVE, onPointerish, captureOptions);\n // Fallback events\n addEventListener(document, CONTEXTMENU, onPointerish, captureOptions);\n addEventListener(document, MOUSEDOWN, onPointerish, captureOptions);\n addEventListener(document, MOUSEMOVE, onPointerish, captureOptions);\n addEventListener(document, MOUSEUP, onPointerish, captureOptions);\n addEventListener(document, TOUCHCANCEL, onPointerish, captureOptions);\n addEventListener(document, TOUCHMOVE, onPointerish, captureOptions);\n addEventListener(document, TOUCHSTART, onPointerish, captureOptions);\n addEventListener(document, SELECTIONCHANGE, onPointerish, captureOptions);\n addEventListener(document, SCROLL, onPointerish, captureOptions);\n}\nfunction callListeners() {\n var value = {\n activeModality,\n modality\n };\n listeners.forEach(listener => {\n listener(value);\n });\n}\nexport function getActiveModality() {\n return activeModality;\n}\nexport function getModality() {\n return modality;\n}\nexport function addModalityListener(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { addEventListener } from '../addEventListener';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n * click.setListener(target, onClick);\n * return () => click.clear();\n * }).\n */\nexport default function useEvent(eventType, options) {\n var targetListeners = useStable(() => new Map());\n var addListener = useStable(() => {\n return (target, callback) => {\n var removeTargetListener = targetListeners.get(target);\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n if (callback == null) {\n targetListeners.delete(target);\n callback = () => {};\n }\n var removeEventListener = addEventListener(target, eventType, callback, options);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(() => {\n return () => {\n targetListeners.forEach(removeListener => {\n removeListener();\n });\n targetListeners.clear();\n };\n }, [targetListeners]);\n return addListener;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n\n/**\n * Types\n */\n\n/**\n * Implementation\n */\n\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n}\n\n// This accounts for the non-PointerEvent fallback events.\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts);\n // These custom events are used to implement the \"contain\" prop.\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(() => {\n var target = targetRef.current;\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n if (onHoverChange != null) {\n onHoverChange(false);\n }\n // Remove the listeners once finished.\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n\n /**\n * Leave element\n */\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n hoverEnd(e);\n }\n };\n\n /**\n * Move within element\n */\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n if (e.y == null) {\n e.y = e.clientY;\n }\n onHoverUpdate(e);\n }\n }\n };\n\n /**\n * Start the hover gesture\n */\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n if (onHoverChange != null) {\n onHoverChange(true);\n }\n // Set the listeners needed for the rest of the hover gesture.\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n\n /**\n * Enter element\n */\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n hoverStart(e);\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"tabIndex\", \"testOnly_hovered\", \"testOnly_pressed\"];\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n var children = props.children,\n delayLongPress = props.delayLongPress,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n disabled = props.disabled,\n onBlur = props.onBlur,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n tabIndex = props.tabIndex,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(() => ({\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled,\n onLongPress,\n onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove,\n onPressEnd: onPressOut\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onContextMenuPress = pressEventHandlers.onContextMenu,\n onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered,\n focused,\n pressed\n };\n var blurHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(e => {\n if (onContextMenuPress != null) {\n onContextMenuPress(e);\n }\n if (onContextMenu != null) {\n onContextMenu(e);\n }\n }, [onContextMenu, onContextMenuPress]);\n var keyDownHandler = React.useCallback(e => {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n var _tabIndex;\n if (tabIndex !== undefined) {\n _tabIndex = tabIndex;\n } else {\n _tabIndex = disabled ? -1 : 0;\n }\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n \"aria-disabled\": disabled,\n onBlur: blurHandler,\n onContextMenu: contextMenuHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n ref: setRef,\n style: [disabled ? styles.disabled : styles.active, typeof style === 'function' ? style(interactionState) : style],\n tabIndex: _tabIndex\n }), typeof children === 'function' ? children(interactionState) : children);\n}\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n return [bool || forced, setBool];\n}\nvar styles = StyleSheet.create({\n active: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n },\n disabled: {\n pointerEvents: 'box-none'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport View from '../View';\nimport React from 'react';\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/React.createElement(View, rest);\n}\nexport default RefreshControl;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n get y() {\n return e.target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n get width() {\n return e.target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n get width() {\n return e.target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef((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, _excluded);\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 function createPreventableScrollHandler(handler) {\n return e => {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target === scrollRef.current) {\n e.persist();\n // A scroll happened, so the scroll resets the scrollend timeout.\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n handleScrollEnd(e);\n }, 100);\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 function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\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});\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\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;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport Dimensions from '../Dimensions';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport Platform from '../Platform';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\nimport UIManager from '../UIManager';\nimport View from '../View';\nimport React from 'react';\nimport warning from 'fbjs/lib/warning';\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nclass ScrollView extends React.Component {\n constructor() {\n super(...arguments);\n this._scrollNodeRef = null;\n this._innerViewRef = null;\n this.isTouching = false;\n this.lastMomentumScrollBeginTime = 0;\n this.lastMomentumScrollEndTime = 0;\n this.observedScrollSinceBecomingResponder = false;\n this.becameResponderWhileAnimating = false;\n this.scrollResponderHandleScrollShouldSetResponder = () => {\n return this.isTouching;\n };\n this.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 this.scrollResponderHandleTerminationRequest = () => {\n return !this.observedScrollSinceBecomingResponder;\n };\n this.scrollResponderHandleTouchEnd = e => {\n var nativeEvent = e.nativeEvent;\n this.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n this.scrollResponderHandleResponderRelease = e => {\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.observedScrollSinceBecomingResponder && !this.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n this.scrollResponderHandleScroll = e => {\n this.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n this.scrollResponderHandleResponderGrant = e => {\n this.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n };\n this.scrollResponderHandleScrollBeginDrag = e => {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this.scrollResponderHandleScrollEndDrag = e => {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this.scrollResponderHandleMomentumScrollBegin = e => {\n this.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this.scrollResponderHandleMomentumScrollEnd = e => {\n this.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this.scrollResponderHandleTouchStart = e => {\n this.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n this.scrollResponderHandleTouchMove = e => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n this.scrollResponderIsAnimating = () => {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.lastMomentumScrollEndTime < this.lastMomentumScrollBeginTime;\n return isAnimating;\n };\n this.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 x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n var node = this.getScrollableNode();\n var left = x || 0;\n var top = y || 0;\n if (node != null) {\n if (typeof node.scroll === 'function') {\n node.scroll({\n top,\n left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n }\n };\n this.scrollResponderZoomTo = (rect, animated) => {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n };\n this.scrollResponderScrollNativeHandleToKeyboard = (nodeHandle, additionalOffset, preventNegativeScrollOffset) => {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, this.getInnerViewNode(), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n };\n this.scrollResponderInputMeasureAndScrollToKeyboard = (left, top, width, height) => {\n var keyboardScreenY = Dimensions.get('window').height;\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n };\n this.scrollResponderKeyboardWillShow = e => {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n this.scrollResponderKeyboardWillHide = e => {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n this.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 this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n this.scrollResponderKeyboardDidHide = e => {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n this.flashScrollIndicators = () => {\n this.scrollResponderFlashScrollIndicators();\n };\n this.getScrollResponder = () => {\n return this;\n };\n this.getScrollableNode = () => {\n return this._scrollNodeRef;\n };\n this.getInnerViewRef = () => {\n return this._innerViewRef;\n };\n this.getInnerViewNode = () => {\n return this._innerViewRef;\n };\n this.getNativeScrollRef = () => {\n return this._scrollNodeRef;\n };\n this.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 _ref2 = y || emptyObject;\n x = _ref2.x;\n y = _ref2.y;\n animated = _ref2.animated;\n }\n this.scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n };\n this.scrollToEnd = options => {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponderNode = this.getScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n this.scrollResponderScrollTo({\n x,\n y,\n animated\n });\n };\n this._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 this._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 if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n this.scrollResponderHandleScroll(e);\n };\n this._setInnerViewRef = node => {\n this._innerViewRef = node;\n };\n this._setScrollNodeRef = node => {\n this._scrollNodeRef = node;\n // 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 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 var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n };\n }\n /**\n * ------------------------------------------------------\n * START SCROLLRESPONDER\n * ------------------------------------------------------\n */\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n /**\n * Invoke this from an `onScroll` event.\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() {\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\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() {\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\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n\n /**\n * Invoke this from an `onResponderGrant` event.\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\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\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\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\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\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\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\n /**\n * Displays the scroll indicators momentarily.\n */\n 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\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\n scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\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\n /**\n * ------------------------------------------------------\n * END SCROLLRESPONDER\n * ------------------------------------------------------\n */\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n\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\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\n 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 centerContent = _this$props.centerContent,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(prop => style && style[prop] !== undefined);\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n var contentSizeChangeProps = {};\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, (child, i) => {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: [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: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\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 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 if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n return scrollView;\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: 'translateZ(0)',\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 contentContainerCenterContent: {\n justifyContent: 'center',\n flexGrow: 1\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((props, forwardedRef) => {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n this._keyExtractor = (item, index) => {\n var info = this._subExtractor(index);\n return info && info.key || String(index);\n };\n this._convertViewable = viewable => {\n var _info$index;\n invariant(viewable.index != null, 'Received a broken ViewToken');\n var info = this._subExtractor(viewable.index);\n if (!info) {\n return null;\n }\n var keyExtractorWithNullableIndex = info.section.keyExtractor;\n var keyExtractorWithNonNullableIndex = this.props.keyExtractor || defaultKeyExtractor;\n var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n key,\n section: info.section\n });\n };\n this._onViewableItemsChanged = _ref => {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n var onViewableItemsChanged = this.props.onViewableItemsChanged;\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean)\n });\n }\n };\n this._renderItem = listItemCount =>\n // eslint-disable-next-line react/no-unstable-nested-components\n _ref2 => {\n var item = _ref2.item,\n index = _ref2.index;\n var info = this._subExtractor(index);\n if (!info) {\n return null;\n }\n var infoIndex = info.index;\n if (infoIndex == null) {\n var section = info.section;\n if (info.header === true) {\n var renderSectionHeader = this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section\n }) : null;\n } else {\n var renderSectionFooter = this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || this.props.renderItem;\n var SeparatorComponent = this._getSeparatorComponent(index, info, listItemCount);\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n prevCellKey: (this._subExtractor(index - 1) || {}).key\n // Callback to provide updateHighlight for this item\n ,\n setSelfHighlightCallback: this._setUpdateHighlightFor,\n setSelfUpdatePropsCallback: this._setUpdatePropsFor\n // Provide child ability to set highlight/updateProps for previous item using prevCellKey\n ,\n updateHighlightFor: this._updateHighlightFor,\n updatePropsFor: this._updatePropsFor,\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection,\n inverted: !!this.props.inverted\n });\n }\n };\n this._updatePropsFor = (cellKey, value) => {\n var updateProps = this._updatePropsMap[cellKey];\n if (updateProps != null) {\n updateProps(value);\n }\n };\n this._updateHighlightFor = (cellKey, value) => {\n var updateHighlight = this._updateHighlightMap[cellKey];\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n // $FlowFixMe[prop-missing]\n delete this._updateHighlightFor[cellKey];\n }\n };\n this._setUpdatePropsFor = (cellKey, updatePropsFn) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n this._updateHighlightMap = {};\n this._updatePropsMap = {};\n this._captureRef = ref => {\n this._listRef = ref;\n };\n }\n scrollToLocation(params) {\n var index = params.itemIndex;\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n var viewOffset = params.viewOffset || 0;\n if (this._listRef == null) {\n return;\n }\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n var frame = this._listRef.__getFrameMetricsApprox(index - params.itemIndex, this._listRef.props);\n viewOffset += frame.length;\n }\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset,\n index\n });\n // $FlowFixMe[incompatible-use]\n this._listRef.scrollToIndex(toIndexParams);\n }\n getListRef() {\n return this._listRef;\n }\n render() {\n var _this$props = this.props,\n ItemSeparatorComponent = _this$props.ItemSeparatorComponent,\n SectionSeparatorComponent = _this$props.SectionSeparatorComponent,\n _renderItem = _this$props.renderItem,\n renderSectionFooter = _this$props.renderSectionFooter,\n renderSectionHeader = _this$props.renderSectionHeader,\n _sections = _this$props.sections,\n stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n passThroughProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : undefined;\n var itemCount = 0;\n for (var _iterator = _createForOfIteratorHelperLoose(this.props.sections), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n }\n\n // Add two for the section header and footer.\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n var renderItem = this._renderItem(itemCount);\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, passThroughProps, {\n keyExtractor: this._keyExtractor,\n stickyHeaderIndices: stickyHeaderIndices,\n renderItem: renderItem,\n data: this.props.sections,\n getItem: (sections, index) => this._getItem(this.props, sections, index),\n getItemCount: () => itemCount,\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n }\n _getItem(props, sections, index) {\n if (!sections) {\n return null;\n }\n var itemIdx = index - 1;\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var itemCount = props.getItemCount(sectionData);\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n\n return null;\n }\n\n // $FlowFixMe[missing-local-annot]\n\n _subExtractor(index) {\n var itemIndex = index;\n var _this$props2 = this.props,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount,\n keyExtractor = _this$props2.keyExtractor,\n sections = _this$props2.sections;\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n }\n _getSeparatorComponent(index, info, listItemCount) {\n info = info || this._subExtractor(index);\n if (!info) {\n return null;\n }\n var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n var isLastItemInList = index === listItemCount - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n return null;\n }\n}\nfunction ItemWithSeparator(props) {\n var LeadingSeparatorComponent = props.LeadingSeparatorComponent,\n SeparatorComponent = props.SeparatorComponent,\n cellKey = props.cellKey,\n prevCellKey = props.prevCellKey,\n setSelfHighlightCallback = props.setSelfHighlightCallback,\n updateHighlightFor = props.updateHighlightFor,\n setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback,\n updatePropsFor = props.updatePropsFor,\n item = props.item,\n index = props.index,\n section = props.section,\n inverted = props.inverted;\n var _React$useState = React.useState(false),\n leadingSeparatorHiglighted = _React$useState[0],\n setLeadingSeparatorHighlighted = _React$useState[1];\n var _React$useState2 = React.useState(false),\n separatorHighlighted = _React$useState2[0],\n setSeparatorHighlighted = _React$useState2[1];\n var _React$useState3 = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps = _React$useState3[0],\n setLeadingSeparatorProps = _React$useState3[1];\n var _React$useState4 = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n separatorProps = _React$useState4[0],\n setSeparatorProps = _React$useState4[1];\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n // $FlowFixMe[incompatible-call]\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);\n var separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (select, newProps) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps(_objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, _objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps(_objectSpread(_objectSpread({}, separatorProps), newProps));\n }\n }\n };\n var element = props.renderItem({\n item,\n index,\n section,\n separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, _extends({\n highlighted: leadingSeparatorHiglighted\n }, leadingSeparatorProps));\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, _extends({\n highlighted: separatorHighlighted\n }, separatorProps));\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n}\n\n/* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n// $FlowFixMe[method-unbinding]\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"stickySectionHeadersEnabled\"];\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n this._captureRef = ref => {\n this._wrapperListRef = ref;\n };\n }\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n render() {\n var _this$props = this.props,\n _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : Platform.OS === 'ios';\n return /*#__PURE__*/React.createElement(VirtualizedSectionList, _extends({}, restProps, {\n stickySectionHeadersEnabled: stickySectionHeadersEnabled,\n ref: this._captureRef,\n getItemCount: items => items.length,\n getItem: (items, index) => items[index]\n }));\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","/**\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 */\n\nvar emptyFunction = () => {};\nfunction StatusBar() {\n return null;\n}\nStatusBar.setBackgroundColor = emptyFunction;\nStatusBar.setBarStyle = emptyFunction;\nStatusBar.setHidden = emptyFunction;\nStatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\nStatusBar.setTranslucent = emptyFunction;\nexport default StatusBar;","/**\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 */\n\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\nexport default isWebColor;","/**\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 */\n\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n if (color == null) return;\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n var colorInt = processColor(color);\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\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 // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\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 */\n\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './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 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 return returnValue;\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 canUseDOM from '../../../modules/canUseDom';\n\n// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n }\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n return null;\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 */\n\nvar slice = Array.prototype.slice;\n\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach((cssRule, i) => {\n var cssText = cssRule.cssText;\n // Create record of existing selectors and rules\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex];\n // Insert rule before the next group, or at the end of the stylesheet\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n }\n // Increment the starting index of all subsequent groups\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n return isInserted;\n }\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent() {\n return getOrderedGroups(groups).map(group => {\n var rules = groups[group].rules;\n // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n /**\n * Insert a rule into the style sheet\n */\n insert(cssText, groupValue) {\n var group = Number(groupValue);\n\n // Create a new group.\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group);\n // Create the internal record.\n groups[group] = {\n start: null,\n rules: [markerRule]\n };\n // Update CSSOM.\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n }\n\n // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n var selectorText = getSelectorText(cssText);\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n // Update CSSOM.\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\nvar groupPattern = /[\"']/g;\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\nvar selectorPattern = /\\s*([,])\\s*/g;\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\n}\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\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 */\n\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [\n// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}',\n// minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport function createSheet(root, id) {\n if (id === void 0) {\n id = defaultId;\n }\n var sheet;\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document;\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n if (index == null) {\n var initialSheet = sheets[0];\n // If we're creating a new sheet, populate it with existing styles\n var textContent = initialSheet != null ? initialSheet.getTextContent() : '';\n // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n sheet = sheets[index];\n }\n }\n } else {\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n sheets.push(sheet);\n } else {\n sheet = sheets[0];\n }\n }\n return {\n getTextContent() {\n return sheet.getTextContent();\n },\n id,\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\n });\n }\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 */\n\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderInlineColor: ['borderRightColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderInlineStyle: ['borderRightStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderInlineWidth: ['borderRightWidth', 'borderLeftWidth'],\n insetBlock: ['top', 'bottom'],\n insetInline: ['left', 'right'],\n marginBlock: ['marginTop', 'marginBottom'],\n marginInline: ['marginRight', 'marginLeft'],\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingInline: ['paddingRight', 'paddingLeft'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndColor: ['borderBottomColor'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderBlockEndWidth: ['borderBottomWidth'],\n //borderInlineStartColor: ['borderLeftColor'],\n //borderInlineStartStyle: ['borderLeftStyle'],\n //borderInlineStartWidth: ['borderLeftWidth'],\n //borderInlineEndColor: ['borderRightColor'],\n //borderInlineEndStyle: ['borderRightStyle'],\n //borderInlineEndWidth: ['borderRightWidth'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius'],\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n insetBlockEnd: ['bottom'],\n insetBlockStart: ['top'],\n //insetInlineEnd: ['right'],\n //insetInlineStart: ['left'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n //marginInlineStart: ['marginLeft'],\n //marginInlineEnd: ['marginRight'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom']\n //paddingInlineStart: ['marginLeft'],\n //paddingInlineEnd: ['marginRight'],\n};\n\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n var resolvedStyle = {};\n var _loop = function _loop() {\n var value = style[prop];\n if (\n // Ignore everything with a null value\n value == null) {\n return \"continue\";\n }\n if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n } else if (prop === 'textDecorationLine') {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n var _value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n if (isInline && prop === 'inset') {\n if (style.insetInline == null) {\n resolvedStyle.left = _value;\n resolvedStyle.right = _value;\n }\n if (style.insetBlock == null) {\n resolvedStyle.top = _value;\n resolvedStyle.bottom = _value;\n }\n } else if (isInline && prop === 'margin') {\n if (style.marginInline == null) {\n resolvedStyle.marginLeft = _value;\n resolvedStyle.marginRight = _value;\n }\n if (style.marginBlock == null) {\n resolvedStyle.marginTop = _value;\n resolvedStyle.marginBottom = _value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingInline == null) {\n resolvedStyle.paddingLeft = _value;\n resolvedStyle.paddingRight = _value;\n }\n if (style.paddingBlock == null) {\n resolvedStyle.paddingTop = _value;\n resolvedStyle.paddingBottom = _value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm, i) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = _value;\n }\n });\n } else {\n resolvedStyle[prop] = _value;\n }\n }\n };\n for (var prop in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return resolvedStyle;\n};\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\n\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\nexport default hash;","/**\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 */\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n if (name in cache) {\n return cache[name];\n }\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\nexport default hyphenateStyleName;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, imageSet, logical, position, sizing, transition],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: w\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 */\n\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\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 */\n\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 3;\nvar customGroup = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n inset: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n insetBlock: 2.1,\n insetInline: 2.1,\n marginInline: 2.1,\n marginBlock: 2.1,\n paddingInline: 2.1,\n paddingBlock: 2.1,\n borderBlockStartColor: 2.2,\n borderBlockStartStyle: 2.2,\n borderBlockStartWidth: 2.2,\n borderBlockEndColor: 2.2,\n borderBlockEndStyle: 2.2,\n borderBlockEndWidth: 2.2,\n borderInlineStartColor: 2.2,\n borderInlineStartStyle: 2.2,\n borderInlineStartWidth: 2.2,\n borderInlineEndColor: 2.2,\n borderInlineEndStyle: 2.2,\n borderInlineEndWidth: 2.2,\n borderEndStartRadius: 2.2,\n borderEndEndRadius: 2.2,\n borderStartStartRadius: 2.2,\n borderStartEndRadius: 2.2,\n insetBlockEnd: 2.2,\n insetBlockStart: 2.2,\n insetInlineEnd: 2.2,\n insetInlineStart: 2.2,\n marginBlockStart: 2.2,\n marginBlockEnd: 2.2,\n marginInlineStart: 2.2,\n marginInlineEnd: 2.2,\n paddingBlockStart: 2.2,\n paddingBlockEnd: 2.2,\n paddingInlineStart: 2.2,\n paddingInlineEnd: 2.2\n};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left';\n\n// Map of LTR property names to their BiDi equivalent.\nvar PROPERTIES_FLIP = {\n [borderTopLeftRadius]: borderTopRightRadius,\n [borderTopRightRadius]: borderTopLeftRadius,\n [borderBottomLeftRadius]: borderBottomRightRadius,\n [borderBottomRightRadius]: borderBottomLeftRadius,\n [borderLeftColor]: borderRightColor,\n [borderLeftStyle]: borderRightStyle,\n [borderLeftWidth]: borderRightWidth,\n [borderRightColor]: borderLeftColor,\n [borderRightStyle]: borderLeftStyle,\n [borderRightWidth]: borderLeftWidth,\n [left]: right,\n [marginLeft]: marginRight,\n [marginRight]: marginLeft,\n [paddingLeft]: paddingRight,\n [paddingRight]: paddingLeft,\n [right]: left\n};\n\n// Map of I18N property names to their LTR equivalent.\nvar PROPERTIES_I18N = {\n borderStartStartRadius: borderTopLeftRadius,\n borderStartEndRadius: borderTopRightRadius,\n borderEndStartRadius: borderBottomLeftRadius,\n borderEndEndRadius: borderBottomRightRadius,\n borderInlineStartColor: borderLeftColor,\n borderInlineStartStyle: borderLeftStyle,\n borderInlineStartWidth: borderLeftWidth,\n borderInlineEndColor: borderRightColor,\n borderInlineEndStyle: borderRightStyle,\n borderInlineEndWidth: borderRightWidth,\n insetInlineEnd: right,\n insetInlineStart: left,\n marginInlineStart: marginLeft,\n marginInlineEnd: marginRight,\n paddingInlineStart: paddingLeft,\n paddingInlineEnd: paddingRight\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n function atomicCompile(srcProp, prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n var v = srcProp !== prop ? cacheKey : valueString;\n identifier = createIdentifier('r', srcProp, v);\n var order = customGroup[srcProp] || atomicGroup;\n var rules = createAtomicRules(identifier, prop, value);\n var orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n return identifier;\n }\n Object.keys(style).sort().forEach(srcProp => {\n var value = style[srcProp];\n if (value != null) {\n var localizeableValue;\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {\n var _left = atomicCompile(srcProp, srcProp, 'left');\n var _right = atomicCompile(srcProp, srcProp, 'right');\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[srcProp];\n if (propPolyfill != null) {\n var ltr = atomicCompile(srcProp, propPolyfill, value);\n var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n }\n // BiDi flip transitionProperty value\n if (srcProp === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n if (polyfillIndices.length > 0) {\n var ltrPolyfillValues = [...values];\n var rtlPolyfillValues = [...values];\n polyfillIndices.forEach(i => {\n var ltrVal = ltrPolyfillValues[i];\n if (typeof ltrVal === 'string') {\n var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);\n var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(srcProp, srcProp, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n compiledStyle[srcProp] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\n}\n\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function classic(style, name) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n var identifier = createIdentifier('css', name, JSON.stringify(style));\n var selector = \".\" + identifier;\n var animationName;\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\n }\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName\n }));\n compiledRules.push(\"\" + selector + block);\n compiledStyle[identifier] = identifier;\n return [compiledStyle, [[compiledRules, classicGroup]]];\n}\n\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function inline(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n var _loop = function _loop() {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n return \"continue\";\n }\n\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[originalProp];\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n }\n // BiDi flip transitionProperty value\n if (originalProp === 'transitionProperty') {\n // $FlowFixMe\n var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n originalValues.forEach((val, i) => {\n if (typeof val === 'string') {\n var valuePolyfill = PROPERTIES_I18N[val];\n if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n value = originalValues.join(' ');\n }\n }\n });\n }\n\n // Create finalized style\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n if (prop === originalProp) {\n frozenProps[prop] = true;\n }\n\n // if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // frozenProps[prop] = true;\n //}\n };\n for (var originalProp in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return createReactDOMStyle(nextStyle, true);\n}\n\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier;\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2[0],\n keyframesRules = _processKeyframesValu2[1];\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...keyframesRules);\n break;\n }\n\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents':\n {\n var finalValue = value;\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n if (value === 'box-only') {\n var _block2 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n rules.push(selector + \">*\" + _block2);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n if (value === 'box-none') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n rules.push(selector + \">*\" + _block3);\n }\n }\n var _block4 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n rules.push(\"\" + selector + _block4);\n break;\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n rules.push(\"\" + selector + _block5);\n break;\n }\n default:\n {\n var _block6 = createDeclarationBlock({\n [property]: value\n });\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n return rules;\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(property => {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property);\n // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n if (Array.isArray(value)) {\n return value.map(v => prop + \":\" + v).join(';');\n } else {\n return prop + \":\" + value;\n }\n })\n // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n\n/**\n * An identifier is associated with a unique set of styles.\n */\nfunction createIdentifier(prefix, name, key) {\n var hashedString = hash(name + key);\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n\n/**\n * Create individual CSS keyframes rules.\n */\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', JSON.stringify(keyframes));\n var steps = '{' + Object.keys(keyframes).map(stepName => {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(prefix => {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return [identifier, rules];\n}\n\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(keyframes => {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes[0],\n keyframesRules = _createKeyframes[1];\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"writingDirection\"];\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 */\n\nimport { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\nvar defaultPreprocessOptions = {\n shadow: true,\n textShadow: true\n};\nfunction customStyleq(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n writingDirection = _options.writingDirection,\n preprocessOptions = _objectWithoutPropertiesLoose(_options, _excluded);\n var isRTL = writingDirection === 'rtl';\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n return preprocess(style, _objectSpread(_objectSpread({}, defaultPreprocessOptions), preprocessOptions));\n }\n })(styles);\n}\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style, defaultPreprocessOptions)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\n/* ----- API ----- */\n\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = create({\n x: _objectSpread({}, absoluteFillObject)\n}).x;\n\n/**\n * create\n */\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key];\n // Only compile at runtime if the style is not already compiled\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\n if (key.indexOf('$raw') > -1) {\n compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n validate(styleObj);\n styles[key] = Object.freeze(styleObj);\n }\n compiledStyles = compileAndInsertAtomic(styleObj);\n }\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n\n/**\n * compose\n */\nfunction compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n if (len > 2) {\n var readableStyles = [...arguments].map(a => flatten(a));\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n console.warn('StyleSheet.compose(a, b) is deprecated; use array syntax, i.e., [a,b].');\n }\n return [style1, style2];\n}\n\n/**\n * flatten\n */\nfunction flatten() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n var flatArray = styles.flat(Infinity);\n var result = {};\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n return result;\n}\n\n/**\n * getSheet\n */\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n\n/**\n * resolve\n */\n\nfunction StyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var isRTL = options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, options);\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(styleProps[1], isRTL);\n }\n return styleProps;\n}\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet;\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.\nStyleSheet.hairlineWidth = 1;\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\nvar stylesheet = StyleSheet;\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 */\n\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nimport { warnOnce } from '../../modules/warnOnce';\nvar emptyObject = {};\n\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\nexport var createBoxShadowValue = style => {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\nexport var createTextShadowValue = style => {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.width;\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nvar mapTransform = transform => {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\nexport var createTransformValue = value => {\n return value.map(mapTransform).join(' ');\n};\nvar PROPERTIES_STANDARD = {\n borderBottomEndRadius: 'borderEndEndRadius',\n borderBottomStartRadius: 'borderEndStartRadius',\n borderTopEndRadius: 'borderStartEndRadius',\n borderTopStartRadius: 'borderStartStartRadius',\n borderEndColor: 'borderInlineEndColor',\n borderEndStyle: 'borderInlineEndStyle',\n borderEndWidth: 'borderInlineEndWidth',\n borderStartColor: 'borderInlineStartColor',\n borderStartStyle: 'borderInlineStartStyle',\n borderStartWidth: 'borderInlineStartWidth',\n end: 'insetInlineEnd',\n marginEnd: 'marginInlineEnd',\n marginHorizontal: 'marginInline',\n marginStart: 'marginInlineStart',\n marginVertical: 'marginBlock',\n paddingEnd: 'paddingInlineEnd',\n paddingHorizontal: 'paddingInline',\n paddingStart: 'paddingInlineStart',\n paddingVertical: 'paddingBlock',\n start: 'insetInlineStart'\n};\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\n\n/**\n * Preprocess styles\n */\nexport var preprocess = function preprocess(originalStyle, options) {\n if (options === void 0) {\n options = {};\n }\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n // Convert shadow styles\n if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {\n warnOnce('shadowStyles', \"\\\"shadow*\\\" style props are deprecated. Use \\\"boxShadow\\\".\");\n var boxShadowValue = createBoxShadowValue(style);\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n var value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n nextStyle.boxShadow = value;\n }\n }\n\n // Convert text shadow styles\n if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {\n warnOnce('textShadowStyles', \"\\\"textShadow*\\\" style props are deprecated. Use \\\"textShadow\\\".\");\n var textShadowValue = createTextShadowValue(style);\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n var _value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n nextStyle.textShadow = _value;\n }\n }\n for (var originalProp in style) {\n if (\n // Ignore some React Native styles\n ignoredProps[originalProp] != null || originalProp === 'shadowColor' || originalProp === 'shadowOffset' || originalProp === 'shadowOpacity' || originalProp === 'shadowRadius' || originalProp === 'textShadowColor' || originalProp === 'textShadowOffset' || originalProp === 'textShadowRadius') {\n continue;\n }\n var originalValue = style[originalProp];\n var prop = PROPERTIES_STANDARD[originalProp] || originalProp;\n var _value2 = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {\n continue;\n }\n if (prop === 'aspectRatio' && typeof _value2 === 'number') {\n nextStyle[prop] = _value2.toString();\n } else if (prop === 'fontVariant') {\n if (Array.isArray(_value2) && _value2.length > 0) {\n warnOnce('fontVariant', '\"fontVariant\" style array value is deprecated. Use space-separated values.');\n _value2 = _value2.join(' ');\n }\n nextStyle[prop] = _value2;\n } else if (prop === 'textAlignVertical') {\n warnOnce('textAlignVertical', '\"textAlignVertical\" style is deprecated. Use \"verticalAlign\".');\n if (style.verticalAlign == null) {\n nextStyle.verticalAlign = _value2 === 'center' ? 'middle' : _value2;\n }\n } else if (prop === 'transform') {\n if (Array.isArray(_value2)) {\n _value2 = createTransformValue(_value2);\n }\n nextStyle.transform = _value2;\n } else {\n nextStyle[prop] = _value2;\n }\n }\n\n // $FlowIgnore\n return nextStyle;\n};\nexport default preprocess;","/**\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 */\n\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\nvar getUnit = str => str.match(CSS_UNIT_RE)[1];\nvar isNumeric = n => {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\nvar multiplyStyleLengthValue = (value, multiple) => {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\nexport default multiplyStyleLengthValue;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-label\", \"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"];\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 */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar defaultActiveTrackColor = '#A3D3CF';\nvar defaultTrackColor = '#939393';\nvar defaultDisabledTrackColor = '#D5D5D5';\nvar defaultActiveThumbColor = '#009688';\nvar defaultThumbColor = '#FAFAFA';\nvar defaultDisabledThumbColor = '#BDBDBD';\nvar Switch = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var ariaLabel = props['aria-label'],\n accessibilityLabel = props.accessibilityLabel,\n activeThumbColor = props.activeThumbColor,\n activeTrackColor = props.activeTrackColor,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n onValueChange = props.onValueChange,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n thumbColor = props.thumbColor,\n trackColor = props.trackColor,\n _props$value = props.value,\n value = _props$value === void 0 ? false : _props$value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var thumbRef = React.useRef(null);\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;\n }\n }\n }();\n var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;\n var thumbHeight = height;\n var thumbWidth = thumbHeight;\n var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n height,\n width\n }];\n var disabledTrackColor = function () {\n if (value === true) {\n if (typeof activeTrackColor === 'string' && activeTrackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.true) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n } else {\n if (typeof trackColor === 'string' && trackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.false) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n }\n }();\n var disabledThumbColor = function () {\n if (value === true) {\n if (activeThumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n } else {\n if (thumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n }\n }();\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? disabledThumbColor : thumbCurrentColor,\n height: thumbHeight,\n marginStart: value ? multiplyStyleLengthValue(thumbWidth, -1) : 0,\n width: thumbWidth\n }];\n var nativeControl = createElement('input', {\n 'aria-label': ariaLabel || accessibilityLabel,\n checked: value,\n disabled: disabled,\n onBlur: handleFocusState,\n onChange: handleChange,\n onFocus: handleFocusState,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n role: 'switch'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n style: rootStyle\n }), /*#__PURE__*/React.createElement(View, {\n style: trackStyle\n }), /*#__PURE__*/React.createElement(View, {\n ref: thumbRef,\n style: thumbStyle\n }), nativeControl);\n});\nSwitch.displayName = 'Switch';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n track: _objectSpread(_objectSpread({\n forcedColorAdjust: 'none'\n }, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n forcedColorAdjust: 'none',\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: 'translateZ(0)',\n transitionDuration: '0.1s'\n },\n thumbActive: {\n insetInlineStart: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport { getLocaleDirection, useLocaleContext } from '../../modules/useLocale';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\nimport { warnOnce } from '../../modules/warnOnce';\n\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\nvar isSelectionStale = (node, selection) => {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\nvar setSelection = (node, selection) => {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\n\n// If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\nvar focusTimeout = null;\nvar TextInput = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n caretHidden = props.caretHidden,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n editable = props.editable,\n enterKeyHint = props.enterKeyHint,\n inputMode = props.inputMode,\n keyboardType = props.keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n numberOfLines = props.numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\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 onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n _props$readOnly = props.readOnly,\n readOnly = _props$readOnly === void 0 ? false : _props$readOnly,\n returnKeyType = props.returnKeyType,\n rows = props.rows,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n showSoftInputOnFocus = props.showSoftInputOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var _inputMode;\n if (inputMode != null) {\n _inputMode = inputMode;\n if (inputMode === 'email') {\n type = 'email';\n } else if (inputMode === 'tel') {\n type = 'tel';\n } else if (inputMode === 'search') {\n type = 'search';\n } else if (inputMode === 'url') {\n type = 'url';\n } else {\n type = 'text';\n }\n } else if (keyboardType != null) {\n warnOnce('keyboardType', 'keyboardType is deprecated. Use inputMode.');\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n case 'number-pad':\n case 'numeric':\n _inputMode = 'numeric';\n break;\n case 'decimal-pad':\n _inputMode = 'decimal';\n break;\n case 'phone-pad':\n type = 'tel';\n break;\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n case 'url':\n type = 'url';\n break;\n default:\n type = 'text';\n }\n }\n if (secureTextEntry) {\n type = 'password';\n }\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var prevSelection = React.useRef(null);\n var prevSecureTextEntry = React.useRef(false);\n React.useEffect(() => {\n if (hostRef.current && prevSelection.current) {\n setSelection(hostRef.current, prevSelection.current);\n }\n prevSecureTextEntry.current = secureTextEntry;\n }, [secureTextEntry]);\n var handleContentSizeChange = React.useCallback(hostNode => {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\n if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n dimensions.current.height = newHeight;\n dimensions.current.width = newWidth;\n onContentSizeChange({\n nativeEvent: {\n contentSize: {\n height: dimensions.current.height,\n width: dimensions.current.width\n }\n }\n });\n }\n }\n }, [multiline, onContentSizeChange]);\n var imperativeRef = React.useMemo(() => hostNode => {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n handleContentSizeChange(hostNode);\n }\n }, [handleContentSizeChange]);\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n function handleChange(e) {\n var hostNode = e.target;\n var text = hostNode.value;\n e.nativeEvent.text = text;\n handleContentSizeChange(hostNode);\n if (onChange) {\n onChange(e);\n }\n if (onChangeText) {\n onChangeText(text);\n }\n }\n function handleFocus(e) {\n var hostNode = e.target;\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n if (focusTimeout != null) {\n clearTimeout(focusTimeout);\n }\n focusTimeout = setTimeout(() => {\n if (hostNode != null) {\n hostNode.select();\n }\n }, 0);\n }\n }\n }\n function handleKeyDown(e) {\n var hostNode = e.target;\n // Prevent key events bubbling (see #612)\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n if (onKeyPress) {\n onKeyPress(e);\n }\n if (e.key === 'Enter' && !e.shiftKey &&\n // Do not call submit if composition is occuring.\n !isComposing && !e.isDefaultPrevented()) {\n if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n // prevent \"Enter\" from inserting a newline or submitting a form\n e.preventDefault();\n nativeEvent.text = e.target.value;\n onSubmitEditing(e);\n }\n if (shouldBlurOnSubmit && hostNode != null) {\n setTimeout(() => hostNode.blur(), 0);\n }\n }\n }\n function handleSelectionChange(e) {\n try {\n var _e$target = e.target,\n selectionStart = _e$target.selectionStart,\n selectionEnd = _e$target.selectionEnd;\n var _selection = {\n start: selectionStart,\n end: selectionEnd\n };\n if (onSelectionChange) {\n e.nativeEvent.selection = _selection;\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n }\n if (prevSecureTextEntry.current === secureTextEntry) {\n prevSelection.current = _selection;\n }\n } catch (e) {}\n }\n useLayoutEffect(() => {\n var node = hostRef.current;\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n // 'auto' by default allows browsers to infer writing direction\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n if (returnKeyType != null) {\n warnOnce('returnKeyType', 'returnKeyType is deprecated. Use enterKeyHint.');\n }\n supportedProps.enterKeyHint = enterKeyHint || returnKeyType;\n supportedProps.inputMode = _inputMode;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n if (editable != null) {\n warnOnce('editable', 'editable is deprecated. Use readOnly.');\n }\n supportedProps.readOnly = readOnly === true || editable === false;\n if (numberOfLines != null) {\n warnOnce('numberOfLines', 'TextInput numberOfLines is deprecated. Use rows.');\n }\n supportedProps.rows = multiline ? rows != null ? rows : numberOfLines : 1;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = [{\n '--placeholderTextColor': placeholderTextColor\n }, styles.textinput$raw, styles.placeholder, props.style, caretHidden && styles.caretHidden];\n supportedProps.type = multiline ? undefined : type;\n supportedProps.virtualkeyboardpolicy = showSoftInputOnFocus === false ? 'manual' : 'auto';\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return element;\n});\nTextInput.displayName = 'TextInput';\n// $FlowFixMe\nTextInput.State = TextInputState;\nvar styles = StyleSheet.create({\n textinput$raw: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n },\n placeholder: {\n placeholderTextColor: 'var(--placeholderTextColor)'\n },\n caretHidden: {\n caretColor: 'transparent'\n }\n});\nexport default TextInput;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport createElement from '../createElement';\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';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nimport { warnOnce } from '../../modules/warnOnce';\nvar forwardPropsList = Object.assign({}, 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});\nvar pickProps = props => pick(props, forwardPropsList);\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var 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 rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (selectable != null) {\n warnOnce('selectable', 'selectable prop is deprecated. Use styles.userSelect.');\n }\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(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 langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n // 'auto' by default allows browsers to infer writing direction (root elements only)\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\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 writingDirection\n });\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n textAlign: 'start',\n textDecoration: 'none',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n text$raw: textStyle,\n textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\n color: 'inherit',\n font: 'inherit',\n textAlign: '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 notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"];\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';\nimport { warnOnce } from '../../modules/warnOnce';\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}\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\nfunction TouchableHighlight(props, forwardedRef) {\n warnOnce('TouchableHighlight', 'TouchableHighlight is deprecated. Please use Pressable.');\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, _excluded);\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n var showUnderlay = useCallback(() => {\n if (!hasPressHandler(props)) {\n return;\n }\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(() => {\n if (testOnly_pressed === true) {\n return;\n }\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart(event) {\n showUnderlay();\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd(event) {\n hideUnderlay();\n if (onPressOut != null) {\n onPressOut(event);\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 pointerEvents: disabled ? 'box-none' : undefined,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: [child.props.style, extraStyles && extraStyles.child]\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) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\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';\nimport { warnOnce } from '../../modules/warnOnce';\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n warnOnce('TouchableOpacity', 'TouchableOpacity is deprecated. Please use Pressable.');\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n var setOpacityTo = useCallback((value, duration) => {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(duration => {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(duration => {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd(event) {\n setOpacityInactive(250);\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'box-none' : undefined,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport pick from '../../modules/pick';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport { warnOnce } from '../../modules/warnOnce';\nvar forwardPropsList = {\n accessibilityDisabled: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityState: true,\n accessibilityValue: true,\n children: true,\n disabled: true,\n focusable: true,\n nativeID: true,\n onBlur: true,\n onFocus: true,\n onLayout: true,\n testID: true\n};\nvar pickProps = props => pick(props, forwardPropsList);\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n warnOnce('TouchableWithoutFeedback', 'TouchableWithoutFeedback is deprecated. Please use Pressable.');\n var delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination;\n var hostRef = useRef(null);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\n }), [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var element = React.Children.only(props.children);\n var children = [element.props.children];\n var supportedProps = pickProps(props);\n supportedProps.accessibilityDisabled = disabled;\n supportedProps.focusable = !disabled && focusable !== false;\n supportedProps.ref = useMergeRefs(forwardedRef, hostRef, element.ref);\n var elementProps = Object.assign(supportedProps, pressEventHandlers);\n return /*#__PURE__*/React.cloneElement(element, elementProps, ...children);\n}\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\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 // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\n\nimport isUnitlessNumber from '../unitlessNumbers';\n\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 */\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\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\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}\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\n\nimport dangerousStyleValue from './dangerousStyleValue';\n\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 */\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\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 */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\nvar getRect = node => {\n var height = node.offsetHeight;\n var width = node.offsetWidth;\n var left = node.offsetLeft;\n var top = node.offsetTop;\n node = node.offsetParent;\n while (node && node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n left += node.offsetLeft + node.clientLeft - node.scrollLeft;\n top += node.offsetTop + node.clientTop - node.scrollTop;\n node = node.offsetParent;\n }\n top -= window.scrollY;\n left -= window.scrollX;\n return {\n width,\n height,\n top,\n left\n };\n};\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n if (node && relativeNode) {\n setTimeout(() => {\n if (node.isConnected && relativeNode.isConnected) {\n var relativeRect = getRect(relativeNode);\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }\n }, 0);\n }\n};\nvar elementsToIgnore = {\n A: true,\n BODY: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus(node) {\n try {\n var name = node.nodeName;\n // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus. We don't want to set the tabindex value on\n // elements that should not prevent keyboard focus.\n if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n node.focus();\n } catch (err) {}\n },\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\n var _getBoundingClientRec = getBoundingClientRect(node),\n height = _getBoundingClientRec.height,\n left = _getBoundingClientRec.left,\n top = _getBoundingClientRec.top,\n width = _getBoundingClientRec.width;\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n var value = props[prop];\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\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 default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport createElement from '../createElement';\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';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, 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});\nvar pickProps = props => pick(props, forwardPropsList);\nvar View = /*#__PURE__*/React.forwardRef((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 rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(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 var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var component = 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\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 writingDirection\n });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n view$raw: {\n alignItems: 'stretch',\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n listStyle: 'none',\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n textDecoration: 'none',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-activedescendant\", \"accessibilityActiveDescendant\", \"aria-atomic\", \"accessibilityAtomic\", \"aria-autocomplete\", \"accessibilityAutoComplete\", \"aria-busy\", \"accessibilityBusy\", \"aria-checked\", \"accessibilityChecked\", \"aria-colcount\", \"accessibilityColumnCount\", \"aria-colindex\", \"accessibilityColumnIndex\", \"aria-colspan\", \"accessibilityColumnSpan\", \"aria-controls\", \"accessibilityControls\", \"aria-current\", \"accessibilityCurrent\", \"aria-describedby\", \"accessibilityDescribedBy\", \"aria-details\", \"accessibilityDetails\", \"aria-disabled\", \"accessibilityDisabled\", \"aria-errormessage\", \"accessibilityErrorMessage\", \"aria-expanded\", \"accessibilityExpanded\", \"aria-flowto\", \"accessibilityFlowTo\", \"aria-haspopup\", \"accessibilityHasPopup\", \"aria-hidden\", \"accessibilityHidden\", \"aria-invalid\", \"accessibilityInvalid\", \"aria-keyshortcuts\", \"accessibilityKeyShortcuts\", \"aria-label\", \"accessibilityLabel\", \"aria-labelledby\", \"accessibilityLabelledBy\", \"aria-level\", \"accessibilityLevel\", \"aria-live\", \"accessibilityLiveRegion\", \"aria-modal\", \"accessibilityModal\", \"aria-multiline\", \"accessibilityMultiline\", \"aria-multiselectable\", \"accessibilityMultiSelectable\", \"aria-orientation\", \"accessibilityOrientation\", \"aria-owns\", \"accessibilityOwns\", \"aria-placeholder\", \"accessibilityPlaceholder\", \"aria-posinset\", \"accessibilityPosInSet\", \"aria-pressed\", \"accessibilityPressed\", \"aria-readonly\", \"accessibilityReadOnly\", \"aria-required\", \"accessibilityRequired\", \"role\", \"accessibilityRole\", \"aria-roledescription\", \"accessibilityRoleDescription\", \"aria-rowcount\", \"accessibilityRowCount\", \"aria-rowindex\", \"accessibilityRowIndex\", \"aria-rowspan\", \"accessibilityRowSpan\", \"aria-selected\", \"accessibilitySelected\", \"aria-setsize\", \"accessibilitySetSize\", \"aria-sort\", \"accessibilitySort\", \"aria-valuemax\", \"accessibilityValueMax\", \"aria-valuemin\", \"accessibilityValueMin\", \"aria-valuenow\", \"accessibilityValueNow\", \"aria-valuetext\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"id\", \"nativeID\", \"pointerEvents\", \"style\", \"tabIndex\", \"testID\"];\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 */\n\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nimport { warnOnce } from '../warnOnce';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n}\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\nvar createDOMProps = (elementType, props, options) => {\n if (!props) {\n props = emptyObject;\n }\n var _props = props,\n ariaActiveDescendant = _props['aria-activedescendant'],\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n ariaAtomic = _props['aria-atomic'],\n accessibilityAtomic = _props.accessibilityAtomic,\n ariaAutoComplete = _props['aria-autocomplete'],\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n ariaBusy = _props['aria-busy'],\n accessibilityBusy = _props.accessibilityBusy,\n ariaChecked = _props['aria-checked'],\n accessibilityChecked = _props.accessibilityChecked,\n ariaColumnCount = _props['aria-colcount'],\n accessibilityColumnCount = _props.accessibilityColumnCount,\n ariaColumnIndex = _props['aria-colindex'],\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n ariaColumnSpan = _props['aria-colspan'],\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n ariaControls = _props['aria-controls'],\n accessibilityControls = _props.accessibilityControls,\n ariaCurrent = _props['aria-current'],\n accessibilityCurrent = _props.accessibilityCurrent,\n ariaDescribedBy = _props['aria-describedby'],\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n ariaDetails = _props['aria-details'],\n accessibilityDetails = _props.accessibilityDetails,\n ariaDisabled = _props['aria-disabled'],\n accessibilityDisabled = _props.accessibilityDisabled,\n ariaErrorMessage = _props['aria-errormessage'],\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n ariaExpanded = _props['aria-expanded'],\n accessibilityExpanded = _props.accessibilityExpanded,\n ariaFlowTo = _props['aria-flowto'],\n accessibilityFlowTo = _props.accessibilityFlowTo,\n ariaHasPopup = _props['aria-haspopup'],\n accessibilityHasPopup = _props.accessibilityHasPopup,\n ariaHidden = _props['aria-hidden'],\n accessibilityHidden = _props.accessibilityHidden,\n ariaInvalid = _props['aria-invalid'],\n accessibilityInvalid = _props.accessibilityInvalid,\n ariaKeyShortcuts = _props['aria-keyshortcuts'],\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n ariaLabel = _props['aria-label'],\n accessibilityLabel = _props.accessibilityLabel,\n ariaLabelledBy = _props['aria-labelledby'],\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n ariaLevel = _props['aria-level'],\n accessibilityLevel = _props.accessibilityLevel,\n ariaLive = _props['aria-live'],\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n ariaModal = _props['aria-modal'],\n accessibilityModal = _props.accessibilityModal,\n ariaMultiline = _props['aria-multiline'],\n accessibilityMultiline = _props.accessibilityMultiline,\n ariaMultiSelectable = _props['aria-multiselectable'],\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n ariaOrientation = _props['aria-orientation'],\n accessibilityOrientation = _props.accessibilityOrientation,\n ariaOwns = _props['aria-owns'],\n accessibilityOwns = _props.accessibilityOwns,\n ariaPlaceholder = _props['aria-placeholder'],\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n ariaPosInSet = _props['aria-posinset'],\n accessibilityPosInSet = _props.accessibilityPosInSet,\n ariaPressed = _props['aria-pressed'],\n accessibilityPressed = _props.accessibilityPressed,\n ariaReadOnly = _props['aria-readonly'],\n accessibilityReadOnly = _props.accessibilityReadOnly,\n ariaRequired = _props['aria-required'],\n accessibilityRequired = _props.accessibilityRequired,\n ariaRole = _props.role,\n accessibilityRole = _props.accessibilityRole,\n ariaRoleDescription = _props['aria-roledescription'],\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n ariaRowCount = _props['aria-rowcount'],\n accessibilityRowCount = _props.accessibilityRowCount,\n ariaRowIndex = _props['aria-rowindex'],\n accessibilityRowIndex = _props.accessibilityRowIndex,\n ariaRowSpan = _props['aria-rowspan'],\n accessibilityRowSpan = _props.accessibilityRowSpan,\n ariaSelected = _props['aria-selected'],\n accessibilitySelected = _props.accessibilitySelected,\n ariaSetSize = _props['aria-setsize'],\n accessibilitySetSize = _props.accessibilitySetSize,\n ariaSort = _props['aria-sort'],\n accessibilitySort = _props.accessibilitySort,\n ariaValueMax = _props['aria-valuemax'],\n accessibilityValueMax = _props.accessibilityValueMax,\n ariaValueMin = _props['aria-valuemin'],\n accessibilityValueMin = _props.accessibilityValueMin,\n ariaValueNow = _props['aria-valuenow'],\n accessibilityValueNow = _props.accessibilityValueNow,\n ariaValueText = _props['aria-valuetext'],\n accessibilityValueText = _props.accessibilityValueText,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n id = _props.id,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n tabIndex = _props.tabIndex,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n if (accessibilityDisabled != null) {\n warnOnce('accessibilityDisabled', \"accessibilityDisabled is deprecated.\");\n }\n var disabled = ariaDisabled || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props);\n\n // ACCESSIBILITY\n if (accessibilityActiveDescendant != null) {\n warnOnce('accessibilityActiveDescendant', \"accessibilityActiveDescendant is deprecated. Use aria-activedescendant.\");\n }\n var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;\n if (_ariaActiveDescendant != null) {\n domProps['aria-activedescendant'] = _ariaActiveDescendant;\n }\n if (accessibilityAtomic != null) {\n warnOnce('accessibilityAtomic', \"accessibilityAtomic is deprecated. Use aria-atomic.\");\n }\n var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;\n if (_ariaAtomic != null) {\n domProps['aria-atomic'] = _ariaAtomic;\n }\n if (accessibilityAutoComplete != null) {\n warnOnce('accessibilityAutoComplete', \"accessibilityAutoComplete is deprecated. Use aria-autocomplete.\");\n }\n var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;\n if (_ariaAutoComplete != null) {\n domProps['aria-autocomplete'] = _ariaAutoComplete;\n }\n if (accessibilityBusy != null) {\n warnOnce('accessibilityBusy', \"accessibilityBusy is deprecated. Use aria-busy.\");\n }\n var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;\n if (_ariaBusy != null) {\n domProps['aria-busy'] = _ariaBusy;\n }\n if (accessibilityChecked != null) {\n warnOnce('accessibilityChecked', \"accessibilityChecked is deprecated. Use aria-checked.\");\n }\n var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;\n if (_ariaChecked != null) {\n domProps['aria-checked'] = _ariaChecked;\n }\n if (accessibilityColumnCount != null) {\n warnOnce('accessibilityColumnCount', \"accessibilityColumnCount is deprecated. Use aria-colcount.\");\n }\n var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;\n if (_ariaColumnCount != null) {\n domProps['aria-colcount'] = _ariaColumnCount;\n }\n if (accessibilityColumnIndex != null) {\n warnOnce('accessibilityColumnIndex', \"accessibilityColumnIndex is deprecated. Use aria-colindex.\");\n }\n var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;\n if (_ariaColumnIndex != null) {\n domProps['aria-colindex'] = _ariaColumnIndex;\n }\n if (accessibilityColumnSpan != null) {\n warnOnce('accessibilityColumnSpan', \"accessibilityColumnSpan is deprecated. Use aria-colspan.\");\n }\n var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;\n if (_ariaColumnSpan != null) {\n domProps['aria-colspan'] = _ariaColumnSpan;\n }\n if (accessibilityControls != null) {\n warnOnce('accessibilityControls', \"accessibilityControls is deprecated. Use aria-controls.\");\n }\n var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;\n if (_ariaControls != null) {\n domProps['aria-controls'] = processIDRefList(_ariaControls);\n }\n if (accessibilityCurrent != null) {\n warnOnce('accessibilityCurrent', \"accessibilityCurrent is deprecated. Use aria-current.\");\n }\n var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;\n if (_ariaCurrent != null) {\n domProps['aria-current'] = _ariaCurrent;\n }\n if (accessibilityDescribedBy != null) {\n warnOnce('accessibilityDescribedBy', \"accessibilityDescribedBy is deprecated. Use aria-describedby.\");\n }\n var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;\n if (_ariaDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(_ariaDescribedBy);\n }\n if (accessibilityDetails != null) {\n warnOnce('accessibilityDetails', \"accessibilityDetails is deprecated. Use aria-details.\");\n }\n var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;\n if (_ariaDetails != null) {\n domProps['aria-details'] = _ariaDetails;\n }\n if (disabled === true) {\n domProps['aria-disabled'] = true;\n // Enhance with native semantics\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n if (accessibilityErrorMessage != null) {\n warnOnce('accessibilityErrorMessage', \"accessibilityErrorMessage is deprecated. Use aria-errormessage.\");\n }\n var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;\n if (_ariaErrorMessage != null) {\n domProps['aria-errormessage'] = _ariaErrorMessage;\n }\n if (accessibilityExpanded != null) {\n warnOnce('accessibilityExpanded', \"accessibilityExpanded is deprecated. Use aria-expanded.\");\n }\n var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;\n if (_ariaExpanded != null) {\n domProps['aria-expanded'] = _ariaExpanded;\n }\n if (accessibilityFlowTo != null) {\n warnOnce('accessibilityFlowTo', \"accessibilityFlowTo is deprecated. Use aria-flowto.\");\n }\n var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;\n if (_ariaFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(_ariaFlowTo);\n }\n if (accessibilityHasPopup != null) {\n warnOnce('accessibilityHasPopup', \"accessibilityHasPopup is deprecated. Use aria-haspopup.\");\n }\n var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;\n if (_ariaHasPopup != null) {\n domProps['aria-haspopup'] = _ariaHasPopup;\n }\n if (accessibilityHidden != null) {\n warnOnce('accessibilityHidden', \"accessibilityHidden is deprecated. Use aria-hidden.\");\n }\n var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;\n if (_ariaHidden === true) {\n domProps['aria-hidden'] = _ariaHidden;\n }\n if (accessibilityInvalid != null) {\n warnOnce('accessibilityInvalid', \"accessibilityInvalid is deprecated. Use aria-invalid.\");\n }\n var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;\n if (_ariaInvalid != null) {\n domProps['aria-invalid'] = _ariaInvalid;\n }\n if (accessibilityKeyShortcuts != null) {\n warnOnce('accessibilityKeyShortcuts', \"accessibilityKeyShortcuts is deprecated. Use aria-keyshortcuts.\");\n }\n var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;\n if (_ariaKeyShortcuts != null) {\n domProps['aria-keyshortcuts'] = processIDRefList(_ariaKeyShortcuts);\n }\n if (accessibilityLabel != null) {\n warnOnce('accessibilityLabel', \"accessibilityLabel is deprecated. Use aria-label.\");\n }\n var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;\n if (_ariaLabel != null) {\n domProps['aria-label'] = _ariaLabel;\n }\n if (accessibilityLabelledBy != null) {\n warnOnce('accessibilityLabelledBy', \"accessibilityLabelledBy is deprecated. Use aria-labelledby.\");\n }\n var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;\n if (_ariaLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(_ariaLabelledBy);\n }\n if (accessibilityLevel != null) {\n warnOnce('accessibilityLevel', \"accessibilityLevel is deprecated. Use aria-level.\");\n }\n var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;\n if (_ariaLevel != null) {\n domProps['aria-level'] = _ariaLevel;\n }\n if (accessibilityLiveRegion != null) {\n warnOnce('accessibilityLiveRegion', \"accessibilityLiveRegion is deprecated. Use aria-live.\");\n }\n var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;\n if (_ariaLive != null) {\n domProps['aria-live'] = _ariaLive === 'none' ? 'off' : _ariaLive;\n }\n if (accessibilityModal != null) {\n warnOnce('accessibilityModal', \"accessibilityModal is deprecated. Use aria-modal.\");\n }\n var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;\n if (_ariaModal != null) {\n domProps['aria-modal'] = _ariaModal;\n }\n if (accessibilityMultiline != null) {\n warnOnce('accessibilityMultiline', \"accessibilityMultiline is deprecated. Use aria-multiline.\");\n }\n var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;\n if (_ariaMultiline != null) {\n domProps['aria-multiline'] = _ariaMultiline;\n }\n if (accessibilityMultiSelectable != null) {\n warnOnce('accessibilityMultiSelectable', \"accessibilityMultiSelectable is deprecated. Use aria-multiselectable.\");\n }\n var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;\n if (_ariaMultiSelectable != null) {\n domProps['aria-multiselectable'] = _ariaMultiSelectable;\n }\n if (accessibilityOrientation != null) {\n warnOnce('accessibilityOrientation', \"accessibilityOrientation is deprecated. Use aria-orientation.\");\n }\n var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;\n if (_ariaOrientation != null) {\n domProps['aria-orientation'] = _ariaOrientation;\n }\n if (accessibilityOwns != null) {\n warnOnce('accessibilityOwns', \"accessibilityOwns is deprecated. Use aria-owns.\");\n }\n var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;\n if (_ariaOwns != null) {\n domProps['aria-owns'] = processIDRefList(_ariaOwns);\n }\n if (accessibilityPlaceholder != null) {\n warnOnce('accessibilityPlaceholder', \"accessibilityPlaceholder is deprecated. Use aria-placeholder.\");\n }\n var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;\n if (_ariaPlaceholder != null) {\n domProps['aria-placeholder'] = _ariaPlaceholder;\n }\n if (accessibilityPosInSet != null) {\n warnOnce('accessibilityPosInSet', \"accessibilityPosInSet is deprecated. Use aria-posinset.\");\n }\n var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;\n if (_ariaPosInSet != null) {\n domProps['aria-posinset'] = _ariaPosInSet;\n }\n if (accessibilityPressed != null) {\n warnOnce('accessibilityPressed', \"accessibilityPressed is deprecated. Use aria-pressed.\");\n }\n var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;\n if (_ariaPressed != null) {\n domProps['aria-pressed'] = _ariaPressed;\n }\n if (accessibilityReadOnly != null) {\n warnOnce('accessibilityReadOnly', \"accessibilityReadOnly is deprecated. Use aria-readonly.\");\n }\n var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;\n if (_ariaReadOnly != null) {\n domProps['aria-readonly'] = _ariaReadOnly;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n if (accessibilityRequired != null) {\n warnOnce('accessibilityRequired', \"accessibilityRequired is deprecated. Use aria-required.\");\n }\n var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;\n if (_ariaRequired != null) {\n domProps['aria-required'] = _ariaRequired;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = accessibilityRequired;\n }\n }\n if (accessibilityRole != null) {\n warnOnce('accessibilityRole', \"accessibilityRole is deprecated. Use role.\");\n }\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n if (accessibilityRoleDescription != null) {\n warnOnce('accessibilityRoleDescription', \"accessibilityRoleDescription is deprecated. Use aria-roledescription.\");\n }\n var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;\n if (_ariaRoleDescription != null) {\n domProps['aria-roledescription'] = _ariaRoleDescription;\n }\n if (accessibilityRowCount != null) {\n warnOnce('accessibilityRowCount', \"accessibilityRowCount is deprecated. Use aria-rowcount.\");\n }\n var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;\n if (_ariaRowCount != null) {\n domProps['aria-rowcount'] = _ariaRowCount;\n }\n if (accessibilityRowIndex != null) {\n warnOnce('accessibilityRowIndex', \"accessibilityRowIndex is deprecated. Use aria-rowindex.\");\n }\n var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;\n if (_ariaRowIndex != null) {\n domProps['aria-rowindex'] = _ariaRowIndex;\n }\n if (accessibilityRowSpan != null) {\n warnOnce('accessibilityRowSpan', \"accessibilityRowSpan is deprecated. Use aria-rowspan.\");\n }\n var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;\n if (_ariaRowSpan != null) {\n domProps['aria-rowspan'] = _ariaRowSpan;\n }\n if (accessibilitySelected != null) {\n warnOnce('accessibilitySelected', \"accessibilitySelected is deprecated. Use aria-selected.\");\n }\n var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;\n if (_ariaSelected != null) {\n domProps['aria-selected'] = _ariaSelected;\n }\n if (accessibilitySetSize != null) {\n warnOnce('accessibilitySetSize', \"accessibilitySetSize is deprecated. Use aria-setsize.\");\n }\n var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;\n if (_ariaSetSize != null) {\n domProps['aria-setsize'] = _ariaSetSize;\n }\n if (accessibilitySort != null) {\n warnOnce('accessibilitySort', \"accessibilitySort is deprecated. Use aria-sort.\");\n }\n var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;\n if (_ariaSort != null) {\n domProps['aria-sort'] = _ariaSort;\n }\n if (accessibilityValueMax != null) {\n warnOnce('accessibilityValueMax', \"accessibilityValueMax is deprecated. Use aria-valuemax.\");\n }\n var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;\n if (_ariaValueMax != null) {\n domProps['aria-valuemax'] = _ariaValueMax;\n }\n if (accessibilityValueMin != null) {\n warnOnce('accessibilityValueMin', \"accessibilityValueMin is deprecated. Use aria-valuemin.\");\n }\n var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;\n if (_ariaValueMin != null) {\n domProps['aria-valuemin'] = _ariaValueMin;\n }\n if (accessibilityValueNow != null) {\n warnOnce('accessibilityValueNow', \"accessibilityValueNow is deprecated. Use aria-valuenow.\");\n }\n var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;\n if (_ariaValueNow != null) {\n domProps['aria-valuenow'] = _ariaValueNow;\n }\n if (accessibilityValueText != null) {\n warnOnce('accessibilityValueText', \"accessibilityValueText is deprecated. Use aria-valuetext.\");\n }\n var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;\n if (_ariaValueText != null) {\n domProps['aria-valuetext'] = _ariaValueText;\n }\n\n // \"dataSet\" replaced with \"data-*\"\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n }\n\n // FOCUS\n if (tabIndex === 0 || tabIndex === '0' || tabIndex === -1 || tabIndex === '-1') {\n domProps.tabIndex = tabIndex;\n } else {\n if (focusable != null) {\n warnOnce('focusable', \"focusable is deprecated.\");\n }\n\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n if (\n // These native elements are keyboard focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if (\n // These roles are made keyboard focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (focusable === true) {\n domProps.tabIndex = '0';\n }\n }\n }\n\n // Resolve styles\n if (pointerEvents != null) {\n warnOnce('pointerEvents', \"props.pointerEvents is deprecated. Use style.pointerEvents\");\n }\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], _objectSpread({\n writingDirection: 'ltr'\n }, options)),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n if (className) {\n domProps.className = className;\n }\n if (inlineStyle) {\n domProps.style = inlineStyle;\n }\n\n // OTHER\n // Native element ID\n if (nativeID != null) {\n warnOnce('nativeID', \"nativeID is deprecated. Use id.\");\n }\n var _id = id != null ? id : nativeID;\n if (_id != null) {\n domProps.id = _id;\n }\n // Automated test IDs\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n if (domProps.type == null && elementType === 'button') {\n domProps.type = 'button';\n }\n return domProps;\n};\nexport default createDOMProps;","/**\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 */\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\nvar createElement = (component, props, options) => {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps);\n\n // Update locale context if element's writing direction prop changes\n var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n children: element,\n direction: domProps.dir,\n locale: domProps.lang\n }) : element;\n return elementWithLocaleProvider;\n};\nexport default createElement;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport normalizeColor from '@react-native/normalize-colors';\nvar processColor = color => {\n if (color === undefined || color === null) {\n return color;\n }\n\n // convert number and hex\n var int32Color = normalizeColor(color);\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\nexport default processColor;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(() => Dimensions.get('window')),\n dims = _useState[0],\n setDims = _useState[1];\n useEffect(() => {\n function handleChange(_ref) {\n var window = _ref.window;\n if (window != null) {\n setDims(window);\n }\n }\n Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n setDims(Dimensions.get('window'));\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport { findDOMNode } from 'react-dom';\n\n/**\n * @deprecated imperatively finding the DOM element of a react component has been deprecated in React 18.\n * You should use ref properties on the component instead.\n */\nvar findNodeHandle = component => {\n var node;\n try {\n node = findDOMNode(component);\n } catch (e) {}\n return node;\n};\nexport default findNodeHandle;","/**\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 */\n\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\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 */\n\nimport { hydrate as domLegacyHydrate, render as domLegacyRender } from 'react-dom';\nimport { createRoot as domCreateRoot, hydrateRoot as domHydrateRoot } from 'react-dom/client';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport { createSheet } from '../StyleSheet/dom';\nexport function hydrate(element, root) {\n createSheet(root);\n return domHydrateRoot(root, element);\n}\nexport function render(element, root) {\n createSheet(root);\n var reactRoot = domCreateRoot(root);\n reactRoot.render(element);\n return reactRoot;\n}\nexport function hydrateLegacy(element, root, callback) {\n createSheet(root);\n domLegacyHydrate(element, root, callback);\n return {\n unmount: function unmount() {\n return unmountComponentAtNode(root);\n }\n };\n}\nexport default function renderLegacy(element, root, callback) {\n createSheet(root);\n domLegacyRender(element, root, callback);\n return {\n unmount: function unmount() {\n return unmountComponentAtNode(root);\n }\n };\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../modules/canUseDom';\nfunction isScreenReaderEnabled() {\n return new Promise((resolve, reject) => {\n resolve(true);\n });\n}\nvar prefersReducedMotionMedia = canUseDOM && typeof window.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\nfunction isReduceMotionEnabled() {\n return new Promise((resolve, reject) => {\n resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n });\n}\nfunction addChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener('change', fn) : prefersReducedMotionMedia.addListener(fn);\n }\n}\nfunction removeChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener('change', fn) : prefersReducedMotionMedia.removeListener(fn);\n }\n}\nvar handlers = {};\nvar AccessibilityInfo = {\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isScreenReaderEnabled,\n /**\n * Query whether the user prefers reduced motion.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isReduceMotionEnabled,\n /**\n * Deprecated\n */\n fetch: isScreenReaderEnabled,\n /**\n * Add an event handler. Supported events: reduceMotionChanged\n */\n addEventListener: function addEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n if (!prefersReducedMotionMedia) {\n return;\n }\n var listener = event => {\n handler(event.matches);\n };\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n return {\n remove: () => AccessibilityInfo.removeEventListener(eventName, handler)\n };\n },\n /**\n * Set accessibility focus to a react component.\n */\n setAccessibilityFocus: function setAccessibilityFocus(reactTag) {},\n /**\n * Post a string to be announced by the screen reader.\n */\n announceForAccessibility: function announceForAccessibility(announcement) {},\n /**\n * Remove an event handler.\n */\n removeEventListener: function removeEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n var listener = handlers[handler];\n if (!listener || !prefersReducedMotionMedia) {\n return;\n }\n removeChangeListener(listener);\n }\n return;\n }\n};\nexport default AccessibilityInfo;","/**\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 */\n\nclass Alert {\n static alert() {}\n}\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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 '../../modules/canUseDom';\nfunction getQuery() {\n return canUseDOM && window.matchMedia != null ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n}\nvar query = getQuery();\nvar listenerMapping = new WeakMap();\nvar Appearance = {\n getColorScheme() {\n return query && query.matches ? 'dark' : 'light';\n },\n addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n if (!mappedListener) {\n mappedListener = _ref => {\n var matches = _ref.matches;\n listener({\n colorScheme: matches ? 'dark' : 'light'\n });\n };\n listenerMapping.set(listener, mappedListener);\n }\n if (query) {\n query.addListener(mappedListener);\n }\n function remove() {\n var mappedListener = listenerMapping.get(listener);\n if (query && mappedListener) {\n query.removeListener(mappedListener);\n }\n listenerMapping.delete(listener);\n }\n return {\n remove\n };\n }\n};\nexport default Appearance;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nvar AppContainer = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n style: styles.appContainer\n });\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: styles.appContainer\n }, innerView));\n});\nAppContainer.displayName = 'AppContainer';\nexport default AppContainer;\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n pointerEvents: 'box-none'\n }\n});","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\nvar componentProviderInstrumentationHook = component => component();\nvar wrapperComponentProvider;\n\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\nexport default class AppRegistry {\n static getAppKeys() {\n return Object.keys(runnables);\n }\n static 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 static registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: appParameters => _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)),\n run: appParameters => renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n mode: appParameters.mode || 'concurrent',\n rootTag: appParameters.rootTag\n })\n };\n return appKey;\n }\n static registerConfig(config) {\n config.forEach(_ref => {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\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 }\n\n // TODO: fix style sheet creation when using this method\n static registerRunnable(appKey, run) {\n runnables[appKey] = {\n run\n };\n return appKey;\n }\n static runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\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 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 return runnables[appKey].run(appParameters);\n }\n static setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n }\n static setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n }\n static unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n }\n}","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport renderLegacy, { hydrateLegacy, render, hydrate } from '../render';\nimport StyleSheet from '../StyleSheet';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n mode = options.mode,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? mode === 'concurrent' ? hydrate : hydrateLegacy : mode === 'concurrent' ? render : renderLegacy;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n return renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n ref: callback,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag);\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));\n // Don't escape CSS text\n var getStyleElement = props => {\n var sheet = StyleSheet.getSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n return {\n element,\n getStyleElement\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nimport EventEmitter from '../../vendor/react-native/vendor/emitter/EventEmitter';\nimport canUseDOM from '../../modules/canUseDom';\n\n// Android 4.4 browser\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar changeEmitter = null;\nexport default class AppState {\n static get currentState() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n default:\n return AppStates.ACTIVE;\n }\n }\n static addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n if (type === 'change') {\n if (!changeEmitter) {\n changeEmitter = new EventEmitter();\n document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {\n if (changeEmitter) {\n changeEmitter.emit('change', AppState.currentState);\n }\n }, false);\n }\n return changeEmitter.addListener(type, handler);\n }\n }\n }\n}\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nfunction emptyFunction() {}\nvar BackHandler = {\n exitApp: emptyFunction,\n addEventListener() {\n console.error('BackHandler is not supported on web and should not be used.');\n return {\n remove: emptyFunction\n };\n },\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar clipboardAvailable;\nexport default class Clipboard {\n static isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n return clipboardAvailable;\n }\n static getString() {\n return Promise.resolve('');\n }\n static setString(text) {\n var success = false;\n var body = document.body;\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);\n\n // select the text\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range);\n\n // attempt to copy\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {}\n\n // remove selection and node\n selection.removeAllRanges();\n body.removeChild(node);\n }\n return success;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {} /* unused onError */);\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration,\n create: {\n type,\n property\n },\n update: {\n type\n },\n delete: {\n type,\n property\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/**\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 */\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,\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n 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) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar initialURL = canUseDOM ? window.location.href : '';\nclass Linking {\n constructor() {\n this._eventCallbacks = {};\n }\n /**\n * An object mapping of event name\n * and all the callbacks subscribing to it\n */\n _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 var listeners = this._eventCallbacks[event];\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(listener => {\n listener(...data);\n });\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 addEventListener(eventType, callback) {\n var _this = this;\n if (!_this._eventCallbacks[eventType]) {\n _this._eventCallbacks[eventType] = [callback];\n }\n _this._eventCallbacks[eventType].push(callback);\n return {\n remove() {\n var callbacks = _this._eventCallbacks[eventType];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n _this._eventCallbacks[eventType] = filteredCallbacks;\n }\n };\n }\n\n /**\n * Removes a previously added event listener for the specified event. The callback must\n * be the same object as the one passed to `addEventListener`.\n */\n removeEventListener(eventType, callback) {\n console.error(\"Linking.removeEventListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `Linking.addEventListener`.');\n var callbacks = this._eventCallbacks[eventType];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n this._eventCallbacks[eventType] = filteredCallbacks;\n }\n canOpenURL() {\n return Promise.resolve(true);\n }\n getInitialURL() {\n return Promise.resolve(initialURL);\n }\n\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If a target is passed (including undefined) that target will be used, otherwise '_blank'.\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 openURL(url, target) {\n if (arguments.length === 1) {\n target = '_blank';\n }\n try {\n open(url, target);\n this._dispatchEvent('onOpen', url);\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n }\n _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}\nvar open = (url, target) => {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n if (urlToOpen.indexOf('tel:') === 0) {\n window.location = urlToOpen;\n } else {\n window.open(urlToOpen, target, 'noopener');\n }\n }\n};\nexport default new Linking();","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\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 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 if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n total += toAdd;\n count++;\n }\n }\n }\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true,\n // isXAxis\n true // ofCurrent\n );\n },\n\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false,\n // isXAxis\n true // ofCurrent\n );\n },\n\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true,\n // isXAxis\n false // ofCurrent\n );\n },\n\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false,\n // isXAxis\n false // ofCurrent\n );\n },\n\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0,\n // touchesChangedAfter\n true,\n // isXAxis\n true // ofCurrent\n );\n },\n\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0,\n // touchesChangedAfter\n false,\n // isXAxis\n true // ofCurrent\n );\n },\n\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'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/**\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\n _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;\n // All `gestureState` accounts for timeStamps up until:\n gestureState._accountsForMovesUpTo = 0;\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(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);\n\n // TODO: This must be filtered intelligently.\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 * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config) {\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(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n 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 gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory;\n // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\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 if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n }\n // TODO: t7467124 investigate if this can be removed\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n onResponderMove(event) {\n var touchHistory = event.touchHistory;\n // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n }\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n PanResponder._initializeGestureState(gestureState);\n },\n 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: event => {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers,\n getInteractionHandle() {\n return interactionState.handle;\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 if (callback) {\n callback(event, gestureState);\n }\n}\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(() => {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nclass Share {\n static share(content, options) {\n if (options === void 0) {\n options = {};\n }\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n\n /**\n * The content was successfully shared.\n */\n static get sharedAction() {\n return 'sharedAction';\n }\n\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n static get dismissedAction() {\n return 'dismissedAction';\n }\n}\nexport default Share;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar vibrate = pattern => {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\nvar Vibration = {\n cancel() {\n vibrate(0);\n },\n vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n vibrate(pattern);\n }\n};\nexport default Vibration;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nimport { warnOnce } from '../../modules/warnOnce';\nvar Button = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n warnOnce('Button', 'Button is deprecated. Please use Pressable.');\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;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-readonly\", \"color\", \"disabled\", \"onChange\", \"onValueChange\", \"readOnly\", \"style\", \"value\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var ariaReadOnly = props['aria-readonly'],\n color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n readOnly = props.readOnly,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\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 var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked,\n // 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 readOnly: readOnly === true || ariaReadOnly === true || other.accessibilityReadOnly === true,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-disabled\": disabled,\n \"aria-readonly\": ariaReadOnly,\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 appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"style\", \"imageStyle\", \"imageRef\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\nvar ImageBackground = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [{\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width,\n height,\n zIndex: -1\n }, StyleSheet.absoluteFill, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport View from '../View';\nclass KeyboardAvoidingView extends React.Component {\n constructor() {\n super(...arguments);\n this.frame = null;\n this.onLayout = event => {\n this.frame = event.nativeEvent.layout;\n };\n }\n relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n onKeyboardChange(event) {}\n render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, _excluded);\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n }\n}\nexport default KeyboardAvoidingView;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\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((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, _excluded);\n var hostRef = React.useRef(null);\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n }\n\n // $FlowFixMe\n var supportedProps = _objectSpread({\n children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID,\n value: selectedValue\n }, other);\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n});\n\n// $FlowFixMe\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) Meta Platforms, Inc. and affiliates.\n *\n * This 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\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\n };\n return createElement('option', {\n children: label,\n style,\n testID,\n value\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"];\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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef((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, _excluded);\n var percentageProgress = progress * 100;\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-valuemax\": 100,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": indeterminate ? null : percentageProgress,\n ref: ref,\n role: \"progressbar\",\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [{\n backgroundColor: color,\n width\n }, styles.progress, indeterminate && styles.animation]\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: 'translateX(-100%)'\n },\n '100%': {\n transform: 'translateX(400%)'\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport canUseDOM from '../../modules/canUseDom';\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n return 'env';\n}();\nvar SafeAreaView = /*#__PURE__*/React.forwardRef((props, ref) => {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: [styles.root, style]\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n */\n\nimport invariant from 'fbjs/lib/invariant';\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\nexport default Position;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport normalizeColor from '@react-native/normalize-colors';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\nvar extractSingleTouch = nativeEvent => {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Add a method to get your touchable component's node.\n * getTouchableNode: function() {\n * return this.touchableRef.current\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\n\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\nvar IsPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\n/**\n * Inputs to the state machine.\n */\nvar Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED'\n};\n/**\n * Mapping from States x Signals => States\n */\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n// Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n warnOnce('TouchableMixin', 'TouchableMixin is deprecated. Please use Pressable.');\n var touchableNode = this.getTouchableNode && this.getTouchableNode();\n if (touchableNode && touchableNode.addEventListener) {\n this._touchableBlurListener = e => {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n this._isTouchableKeyboardActive = false;\n }\n };\n touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n var touchableNode = this.getTouchableNode && this.getTouchableNode();\n if (touchableNode && touchableNode.addEventListener) {\n touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n // Clear DOM nodes\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\n },\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget;\n // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n var curState = this.state.touchable.touchState;\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n if (tag == null) {\n return;\n }\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY);\n // $FlowFixMe\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX,\n pageY,\n locationX,\n locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n var newIsHighlight = this._isHighlight(nextState);\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && (\n // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n this.touchableHandlePress(e);\n }\n }\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n e.stopPropagation();\n // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: _ref => {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n var normalizedColor = normalizeColor(color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport View from '../../exports/View';\nimport React from 'react';\n\n/**\n * Common implementation for a simple stubbed view.\n */\nclass UnimplementedView extends React.Component {\n render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n }\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 */\n\nimport UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\nYellowBox.ignoreWarnings = () => {};\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 */\n\nvar LogBox = {\n ignoreLogs() {},\n ignoreAllLogs() {},\n uninstall() {},\n install() {}\n};\nexport default LogBox;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport Appearance from '../Appearance';\nexport default function useColorScheme() {\n var _React$useState = React.useState(Appearance.getColorScheme()),\n colorScheme = _React$useState[0],\n setColorScheme = _React$useState[1];\n React.useEffect(() => {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n var _Appearance$addChange = Appearance.addChangeListener(listener),\n remove = _Appearance$addChange.remove;\n return remove;\n });\n return colorScheme;\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 */\n\nimport { useLocaleContext } from '../../modules/useLocale';\nexport default useLocaleContext;","/**\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 */\n\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\nvar propsToAriaRole = _ref => {\n var accessibilityRole = _ref.accessibilityRole,\n role = _ref.role;\n var _role = role || accessibilityRole;\n if (_role) {\n var inferredRole = accessibilityRoleToWebRole[_role];\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || _role;\n }\n }\n};\nexport default propsToAriaRole;","/**\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 */\n\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n button: 'button',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n paragraph: 'p',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n var roleProp = props.role || props.accessibilityRole;\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (roleProp === 'label') {\n return 'label';\n }\n var role = propsToAriaRole(props);\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n if (level != null) {\n return \"h\" + level;\n }\n return 'h1';\n }\n return roleComponents[role];\n }\n};\nexport default propsToAccessibilityComponent;","/**\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 */\n\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled,\n propsToAccessibilityComponent,\n propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\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 */\n\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport UIManager from '../../exports/UIManager';\n\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 */\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\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() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n return this._currentlyFocusedNode;\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(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\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(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","/**\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 */\n\nimport TextInputState from '../TextInputState';\nvar dismissKeyboard = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\nexport default dismissKeyboard;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nexport var defaultProps = {\n children: true,\n dataSet: true,\n dir: true,\n id: true,\n ref: true,\n suppressHydrationWarning: true,\n tabIndex: true,\n testID: true,\n // @deprecated\n focusable: true,\n nativeID: true\n};\nexport var accessibilityProps = {\n 'aria-activedescendant': true,\n 'aria-atomic': true,\n 'aria-autocomplete': true,\n 'aria-busy': true,\n 'aria-checked': true,\n 'aria-colcount': true,\n 'aria-colindex': true,\n 'aria-colspan': true,\n 'aria-controls': true,\n 'aria-current': true,\n 'aria-describedby': true,\n 'aria-details': true,\n 'aria-disabled': true,\n 'aria-errormessage': true,\n 'aria-expanded': true,\n 'aria-flowto': true,\n 'aria-haspopup': true,\n 'aria-hidden': true,\n 'aria-invalid': true,\n 'aria-keyshortcuts': true,\n 'aria-label': true,\n 'aria-labelledby': true,\n 'aria-level': true,\n 'aria-live': true,\n 'aria-modal': true,\n 'aria-multiline': true,\n 'aria-multiselectable': true,\n 'aria-orientation': true,\n 'aria-owns': true,\n 'aria-placeholder': true,\n 'aria-posinset': true,\n 'aria-pressed': true,\n 'aria-readonly': true,\n 'aria-required': true,\n role: true,\n 'aria-roledescription': true,\n 'aria-rowcount': true,\n 'aria-rowindex': true,\n 'aria-rowspan': true,\n 'aria-selected': true,\n 'aria-setsize': true,\n 'aria-sort': true,\n 'aria-valuemax': true,\n 'aria-valuemin': true,\n 'aria-valuenow': true,\n 'aria-valuetext': true,\n // @deprecated\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};\nexport var clickProps = {\n onClick: true,\n onAuxClick: true,\n onContextMenu: true,\n onGotPointerCapture: true,\n onLostPointerCapture: true,\n onPointerCancel: true,\n onPointerDown: true,\n onPointerEnter: true,\n onPointerMove: true,\n onPointerLeave: true,\n onPointerOut: true,\n onPointerOver: true,\n onPointerUp: 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 style: true\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 */\n\nvar getBoundingClientRect = node => {\n if (node != null) {\n var isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\nexport default getBoundingClientRect;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return function forwardRef(node) {\n args.forEach(ref => {\n if (ref == null) {\n return;\n }\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\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 */\n\nexport default function pick(obj, list) {\n var nextObj = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true) {\n nextObj[key] = obj[key];\n }\n }\n }\n return nextObj;\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 */\n\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(entry => {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, (x, y, width, height, left, top) => {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x,\n y,\n width,\n height,\n left,\n top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: () => entry.target\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n return resizeObserver;\n}\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]);\n\n // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\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 */\n\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\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 */\n\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae',\n// Avestan\n'ar',\n// Arabic\n'arc',\n// Aramaic\n'bcc',\n// Southern Balochi\n'bqi',\n// Bakthiari\n'ckb',\n// Sorani\n'dv',\n// Dhivehi\n'fa', 'far',\n// Persian\n'glk',\n// Gilaki\n'he', 'iw',\n// Hebrew\n'khw',\n// Khowar\n'ks',\n// Kashmiri\n'ku',\n// Kurdish\n'mzn',\n// Mazanderani\n'nqo',\n// N'Ko\n'pnb',\n// Western Punjabi\n'ps',\n// Pashto\n'sd',\n// Sindhi\n'ug',\n// Uyghur\n'ur',\n// Urdu\n'yi' // Yiddish\n]);\n\nvar cache = new Map();\n\n/**\n * Determine the writing direction of a locale\n */\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n if (cachedRTL) {\n return cachedRTL;\n }\n var isRTL = false;\n // $FlowFixMe\n if (Intl.Locale) {\n // $FlowFixMe\n var script = new Intl.Locale(locale).maximize().script;\n isRTL = rtlScripts.has(script);\n } else {\n // Fallback to inferring from language\n var lang = locale.split('-')[0];\n isRTL = rtlLangs.has(lang);\n }\n cache.set(locale, isRTL);\n return isRTL;\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 */\n\nimport React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n direction: 'ltr',\n locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n var direction = props.direction,\n locale = props.locale,\n children = props.children;\n var needsContext = direction || locale;\n return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n children: children,\n value: {\n direction: locale ? getLocaleDirection(locale) : direction,\n locale\n }\n }) : children;\n}\nexport function useLocaleContext() {\n return useContext(LocaleContext);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\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 return React.useMemo(() => mergeRefs(...args),\n // eslint-disable-next-line\n [...args]);\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 */\n\nimport UIManager from '../../exports/UIManager';\nimport useStable from '../useStable';\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 */\nexport default function usePlatformMethods(_ref) {\n var pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n // Avoid creating a new ref on every render.\n var ref = useStable(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n }\n });\n return ref;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'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});\nvar getElementRole = element => element.getAttribute('role');\nvar getElementType = element => element.tagName.toLowerCase();\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isButtonRole = element => getElementRole(element) === 'button';\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var isSpacebar = key === ' ' || key === 'Spacebar';\n var isButtonish = getElementType(target) === 'button' || isButtonRole(target);\n return key === 'Enter' || isSpacebar && isButtonish;\n};\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\nvar DEFAULT_PRESS_DELAY_MS = 50;\n\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 */\nexport default class PressResponder {\n constructor(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._responderElement = null;\n this.configure(config);\n }\n configure(config) {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset() {\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n this._cancelPressOutDelayTimeout();\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n this._receiveSignal(RESPONDER_GRANT, event);\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n if (shouldDelay !== false && delayPressStart > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n this._receiveSignal(DELAY, event);\n }\n var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\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 = getElementType(target);\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n var isActiveElement = this._responderElement === target;\n if (onPress != null && !isNativeInteractiveElement && isActiveElement) {\n onPress(event);\n }\n this._responderElement = null;\n }\n };\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n if (disabled == null) {\n return true;\n }\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false);\n this._responderElement = target;\n // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n document.addEventListener('keyup', keyupHandler);\n }\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var role = getElementRole(target);\n var isButtonLikeRole = role === 'button' || role === 'menuitem';\n if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== 'button') {\n // Prevent spacebar scrolling the window if using non-native button\n event.preventDefault();\n }\n event.stopPropagation();\n }\n },\n onResponderGrant: event => start(event),\n onResponderMove: event => {\n if (this._config.onPressMove != null) {\n this._config.onPressMove(event);\n }\n var touch = getTouchFromResponderEvent(event);\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: event => {\n var _this$_config = this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress;\n // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n if (cancelable == null) {\n return true;\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: event => {\n var _this$_config2 = this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\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 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: event => {\n var _this$_config3 = this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\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 /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\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 this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress;\n // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\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 if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n }\n }\n }\n this._cancelPressDelayTimeout();\n }\n _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 if (onPressStart != null) {\n onPressStart(event);\n }\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n _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 _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n if (fallback === void 0) {\n fallback = 0;\n }\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'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 if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n var pressResponder = pressResponderRef.current;\n\n // Re-configure to use the current node and configuration.\n useEffect(() => {\n pressResponder.configure(config);\n }, [config, pressResponder]);\n\n // 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 useEffect(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\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 */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nvar emptyFunction = () => {};\nvar emptyObject = {};\nvar emptyArray = [];\n\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\nexport default function createResponderEvent(domEvent, responderTouchHistoryStore) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(touch => {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n get locationX() {\n return locationX(touch.clientX);\n },\n get locationY() {\n return locationY(touch.clientY);\n },\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp\n };\n });\n }\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: responderTouchHistoryStore.touchHistory\n };\n\n // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return x - rect.left;\n }\n }\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return y - rect.top;\n }\n }\n return responderEvent;\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 */\n\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\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 */\n\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\nfunction composedPathFallback(target) {\n var path = [];\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n return path;\n}\n\n/**\n * Retrieve the responderId from a host node\n */\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n return null;\n}\n\n/**\n * Store the responderId on a host node\n */\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n return {\n idPath,\n nodePath\n };\n}\n\n/**\n * Walk the paths and find the first common ancestor\n */\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n if (\n // If either path is empty\n pathALength === 0 || pathBLength === 0 ||\n // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0;\n\n // If A is deeper, skip indices that can't match.\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n }\n\n // If B is deeper, skip indices that can't match\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n }\n\n // Walk in lockstep until a match is found\n var depth = pathALength;\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n return null;\n}\n\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n return domEvent.type === 'select';\n}\n\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n return false;\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 */\n\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar MAX_TOUCH_BANK = 20;\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n return identifier;\n}\nfunction recordTouchStart(touch, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\nfunction printTouchBank(touchHistory) {\n var touchBank = touchHistory.touchBank;\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n return printed;\n}\nexport class ResponderTouchHistoryStore {\n constructor() {\n this._touchHistory = {\n touchBank: [],\n //Array\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\n }\n recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n }\n get touchHistory() {\n return this._touchHistory;\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 */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\n\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore';\nimport canUseDOM from '../canUseDom';\n\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n\n // Flag when browser may produce emulated events\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n }\n // Remove flag when browser will not produce emulated events\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n }\n // Ignore various events in particular circumstances\n if (\n // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents ||\n // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n }\n // Remove flag after emulated events are finished\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n return;\n }\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n\n /**\n * Responder System logic\n */\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder;\n\n // If an event occured that might change the current responder...\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n }\n\n // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Start\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n }\n // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) ||\n // native context menu\n eventType === 'contextmenu' ||\n // window blur\n eventType === 'blur' && eventTarget === window ||\n // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node ||\n // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 ||\n // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||\n // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);\n\n // End\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n }\n // Release\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n }\n // Terminate\n if (isTerminateEvent) {\n var shouldTerminate = true;\n\n // Responders can still avoid termination but only for these events.\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id,\n node,\n idPath: prunedIdPath\n };\n }\n }\n };\n\n // capture\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n if (result != null) {\n return result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n\n // bubble\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n if (_result != null) {\n return _result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n\n/**\n * Attempt to transfer the responder.\n */\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Set responder\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n }\n // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n var allowTransfer = true;\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n // Grant next responder\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [\n// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart',\n// touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel',\n// other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n\n/**\n * Register a node with the ResponderSystem.\n */\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n\n/**\n * Unregister a node with the ResponderSystem.\n */\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n changeCurrentResponder(emptyResponder);\n }\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\nexport function getResponderNode() {\n return currentResponder.node;\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 */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\n\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n return ref.current;\n}\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n var id = useStable(() => idCounter++);\n var isAttachedRef = React.useRef(false);\n\n // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n React.useEffect(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]);\n\n // Register and unregister with the Responder System as necessary\n React.useEffect(() => {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n }\n // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n return ref.current;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nvar warnedKeys = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nexport function warnOnce(key, message) {\n if (process.env.NODE_ENV !== 'production') {\n if (warnedKeys[key]) {\n return;\n }\n console.warn(message);\n warnedKeys[key] = true;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter {\n constructor(nativeModule) {\n if (Platform.OS === 'ios') {\n invariant(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.');\n this._nativeModule = nativeModule;\n }\n }\n addListener(eventType, listener, context) {\n var _this$_nativeModule;\n (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context);\n return {\n remove: () => {\n if (subscription != null) {\n var _this$_nativeModule2;\n (_this$_nativeModule2 = this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1);\n // $FlowFixMe[incompatible-use]\n subscription.remove();\n subscription = null;\n }\n }\n };\n }\n\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n removeListener(eventType, listener) {\n var _this$_nativeModule3;\n (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1);\n // NOTE: This will report a deprecation notice via `console.error`.\n // $FlowFixMe[prop-missing] - `removeListener` exists but is deprecated.\n RCTDeviceEventEmitter.removeListener(eventType, listener);\n }\n emit(eventType) {\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 // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n removeAllListeners(eventType) {\n var _this$_nativeModule4;\n invariant(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.');\n (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\n// 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();","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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'use strict';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(offsets, props, getFrameMetrics, zoomScale) {\n if (zoomScale === void 0) {\n zoomScale = 1;\n }\n var itemCount = props.getItemCount(props.data);\n var result = [];\n for (var offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n var currentOffset = offsets[offsetIndex];\n var left = 0;\n var right = itemCount - 1;\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n var mid = left + (right - left >>> 1);\n var frame = getFrameMetrics(mid, props);\n var scaledOffsetStart = frame.offset * zoomScale;\n var scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (mid === 0 && currentOffset < scaledOffsetStart || mid !== 0 && currentOffset <= scaledOffsetStart) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(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/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(props, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {\n first: 0,\n last: -1\n };\n }\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength,\n _scrollMetrics$zoomSc = scrollMetrics.zoomScale,\n zoomScale = _scrollMetrics$zoomSc === void 0 ? 1 : _scrollMetrics$zoomSc;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\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, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props, getFrameMetricsApprox, zoomScale),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\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,\n last\n };\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n var newCellCount = newRangeCount(prev, visible);\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\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 if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\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,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n return String(index);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n constructor(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 dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n var timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: () => clearTimeout(timeoutHandle)\n };\n }\n}\nexport default Batchinator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\nfunction clamp(min, value, max) {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\nexport default clamp;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog() {\n return console.log(...arguments);\n}\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nexport class CellRenderMask {\n constructor(numCells) {\n invariant(numCells >= 0, 'CellRenderMask must contain a non-negative number os cells');\n this._numCells = numCells;\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [{\n first: 0,\n last: numCells - 1,\n isSpacer: true\n }];\n }\n }\n enumerateRegions() {\n return this._regions;\n }\n addCells(cells) {\n invariant(cells.first >= 0 && cells.first < this._numCells && cells.last >= -1 && cells.last < this._numCells && cells.last >= cells.first - 1, 'CellRenderMask.addCells called with invalid cell range');\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n var _this$_findRegion = this._findRegion(cells.first),\n firstIntersect = _this$_findRegion[0],\n firstIntersectIdx = _this$_findRegion[1];\n var _this$_findRegion2 = this._findRegion(cells.last),\n lastIntersect = _this$_findRegion2[0],\n lastIntersectIdx = _this$_findRegion2[1];\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n var newLeadRegion = [];\n var newTailRegion = [];\n var newMainRegion = _objectSpread(_objectSpread({}, cells), {}, {\n isSpacer: false\n });\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n var replacementRegions = [...newLeadRegion, newMainRegion, ...newTailRegion];\n var numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(firstIntersectIdx, numRegionsToDelete, ...replacementRegions);\n }\n numCells() {\n return this._numCells;\n }\n equals(other) {\n return this._numCells === other._numCells && this._regions.length === other._regions.length && this._regions.every((region, i) => region.first === other._regions[i].first && region.last === other._regions[i].last && region.isSpacer === other._regions[i].isSpacer);\n }\n _findRegion(cellIdx) {\n var firstIdx = 0;\n var lastIdx = this._regions.length - 1;\n while (firstIdx <= lastIdx) {\n var middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n var middleRegion = this._regions[middleIdx];\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n invariant(false, \"A region was not found containing cellIdx \" + cellIdx);\n }\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nexport default class ChildListCollection {\n constructor() {\n this._cellKeyToChildren = new Map();\n this._childrenToCellKey = new Map();\n }\n add(list, cellKey) {\n var _this$_cellKeyToChild;\n invariant(!this._childrenToCellKey.has(list), 'Trying to add already present child list');\n var cellLists = (_this$_cellKeyToChild = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild !== void 0 ? _this$_cellKeyToChild : new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n this._childrenToCellKey.set(list, cellKey);\n }\n remove(list) {\n var cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n var cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n forEach(fn) {\n for (var _iterator = _createForOfIteratorHelperLoose(this._cellKeyToChildren.values()), _step; !(_step = _iterator()).done;) {\n var listSet = _step.value;\n for (var _iterator2 = _createForOfIteratorHelperLoose(listSet), _step2; !(_step2 = _iterator2()).done;) {\n var list = _step2.value;\n fn(list);\n }\n }\n }\n forEachInCell(cellKey, fn) {\n var _this$_cellKeyToChild2;\n var listSet = (_this$_cellKeyToChild2 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild2 !== void 0 ? _this$_cellKeyToChild2 : [];\n for (var _iterator3 = _createForOfIteratorHelperLoose(listSet), _step3; !(_step3 = _iterator3()).done;) {\n var list = _step3.value;\n fn(list);\n }\n }\n anyInCell(cellKey, fn) {\n var _this$_cellKeyToChild3;\n var listSet = (_this$_cellKeyToChild3 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild3 !== void 0 ? _this$_cellKeyToChild3 : [];\n for (var _iterator4 = _createForOfIteratorHelperLoose(listSet), _step4; !(_step4 = _iterator4()).done;) {\n var list = _step4.value;\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n size() {\n return this._childrenToCellKey.size;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nclass Info {\n constructor() {\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;\nvar _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n static addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n }\n };\n }\n static setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n }\n static setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n }\n constructor(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 this._resetData();\n }\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n var start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n var total_time_spent = global.performance.now() - start;\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent\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 for (var key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived,\n info\n });\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n computeBlankness(props, cellsAroundViewport, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || cellsAroundViewport.last < cellsAroundViewport.first || this._samplesStartTime == null) {\n return 0;\n }\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n var now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = cellsAroundViewport.first;\n var firstFrame = this._getFrameMetrics(first, props);\n while (first <= cellsAroundViewport.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n var blankBottom = 0;\n var last = cellsAroundViewport.last;\n var lastFrame = this._getFrameMetrics(last, props);\n while (last >= cellsAroundViewport.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n enabled() {\n return this._enabled;\n }\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\nexport default FillRateHelper;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent extends React.PureComponent {\n constructor(props) {\n super(props);\n this._inAsyncStateUpdate = false;\n this._installSetStateHooks();\n }\n setState(partialState, callback) {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n var ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n _installSetStateHooks() {\n var that = this;\n var props = this.props,\n state = this.state;\n Object.defineProperty(this, 'props', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.props\" should not be accessed during state updates');\n return props;\n },\n set(newProps) {\n props = newProps;\n }\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.state\" should not be acceessed during state updates');\n return state;\n },\n set(newState) {\n state = newState;\n }\n });\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport invariant from 'fbjs/lib/invariant';\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n constructor(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\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 /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\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 if (itemCount === 0) {\n return viewableIndices;\n }\n var firstVisible = -1;\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange,\n itemCount\n }));\n return [];\n }\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\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 return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(props, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0, props)) {\n return;\n }\n var viewableIndices = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n var handle = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n _onUpdateSync(props, viewableIndicesToCheck, onViewableItemsChanged, createViewToken) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii => this._viewableIndices.includes(ii));\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(ii => {\n var viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }));\n var changed = [];\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 if (!prevItems.has(key)) {\n changed.push(viewable);\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 if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config\n });\n }\n }\n}\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 var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\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}\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\nexport default ViewabilityHelper;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\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(() => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild\n }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n // Avoid setting a newly created context object if the values are identical.\n var currContext = useContext(VirtualizedListContext);\n var context = useMemo(() => currContext == null ? null : _objectSpread(_objectSpread({}, currContext), {}, {\n cellKey\n }), [currContext, cellKey]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport { VirtualizedListCellContextProvider } from './VirtualizedListContext.js';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nexport default class CellRenderer extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item\n }\n };\n this._separators = {\n highlight: () => {\n var _this$props = this.props,\n cellKey = _this$props.cellKey,\n prevCellKey = _this$props.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props2 = this.props,\n cellKey = _this$props2.cellKey,\n prevCellKey = _this$props2.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props3 = this.props,\n cellKey = _this$props3.cellKey,\n prevCellKey = _this$props3.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n this._onLayout = nativeEvent => {\n this.props.onCellLayout && this.props.onCellLayout(nativeEvent, this.props.cellKey, this.props.index);\n };\n }\n static getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n _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 if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators\n });\n }\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators\n });\n }\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n }\n render() {\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n cellKey = _this$props4.cellKey,\n horizontal = _this$props4.horizontal,\n item = _this$props4.item,\n index = _this$props4.index,\n inversionStyle = _this$props4.inversionStyle,\n onCellFocusCapture = _this$props4.onCellFocusCapture,\n onCellLayout = _this$props4.onCellLayout,\n renderItem = _this$props4.renderItem;\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n var itemSeparator = /*#__PURE__*/React.isValidElement(ItemSeparatorComponent) ?\n // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent :\n // $FlowFixMe[incompatible-type]\n 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 ? /*#__PURE__*/React.createElement(View, _extends({\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({\n cellKey: cellKey,\n index: index,\n item: item,\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n }\n});","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport Batchinator from '../Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../infoLog';\nimport { CellRenderMask } from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from '../FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\nimport { computeWindowedRenderLimits, keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport invariant from 'fbjs/lib/invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ON_EDGE_REACHED_EPSILON = 0.001;\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */ // horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold) {\n return onStartReachedThreshold !== null && onStartReachedThreshold !== void 0 ? onStartReachedThreshold : 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold, visibleLength) {\n return threshold * visibleLength / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\nfunction findLastWhere(arr, predicate) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n return null;\n}\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nclass VirtualizedList extends StateSafePureComponent {\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n if (veryLast < 0) {\n return;\n }\n var frame = this.__getFrameMetricsApprox(veryLast, this.props);\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n if (this._scrollRef == null) {\n return;\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 this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n 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 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\n });\n return;\n }\n var frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n var offset = Math.max(0, this._getOffsetApprox(index, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n if (this._scrollRef == null) {\n return;\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 this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params) {\n 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 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 /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n if (this._scrollRef == null) {\n return;\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 this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return this._scrollRef;\n }\n }\n getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n _getCellKey() {\n var _this$context;\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n\n hasMore() {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n constructor(_props) {\n var _this$props$updateCel;\n super(_props);\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n this._registerAsNestedChild = childList => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n this._unregisterAsNestedChild = childList => {\n this._nestedChildLists.remove(childList.ref);\n };\n this._onUpdateSeparators = (keys, newProps) => {\n keys.forEach(key => {\n var ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\n this._averageCellLength = 0;\n this._cellRefs = {};\n this._frames = {};\n this._footerLength = 0;\n this._hasTriggeredInitialScrollToIndex = 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._lastFocusedCellKey = null;\n this._nestedChildLists = new ChildListCollection();\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 zoomScale: 1\n };\n this._scrollRef = null;\n this._sentStartForContentLength = 0;\n this._sentEndForContentLength = 0;\n this._totalCellLength = 0;\n this._totalCellsMeasured = 0;\n this._viewabilityTuples = [];\n this._captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n var _props$refreshing;\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : 'undefined') + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl\n // $FlowFixMe[incompatible-type]\n , {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n this._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,\n inLayout: true\n };\n var curr = this._frames[cellKey];\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 this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n this._triggerRemeasureForChildListsInCell(cellKey);\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n this._onCellUnmount = cellKey => {\n delete this._cellRefs[cellKey];\n var curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n this._onLayout = 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 this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._onLayoutEmpty = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex) {\n if (this.props.contentOffset == null) {\n if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex)\n });\n } else {\n this.scrollToEnd({\n animated: false\n });\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({\n height,\n width\n });\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._convertParentScrollMetrics = 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;\n // Child's visible length is the same as its parent's\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - this._scrollMetrics.offset;\n var contentLength = this._scrollMetrics.contentLength;\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset\n };\n };\n this._onScroll = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n var timestamp = e.timeStamp;\n var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n var contentLength = this._selectLength(e.nativeEvent.contentSize);\n var offset = this._selectOffset(e.nativeEvent.contentOffset);\n var dOffset = offset - this._scrollMetrics.offset;\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 var _this$_convertParentS = this._convertParentScrollMetrics({\n visibleLength,\n offset\n });\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\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,\n prevDt: this._scrollMetrics.dt,\n contentLength\n });\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n var zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale\n };\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n this._onScrollBeginDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n var velocity = e.nativeEvent.velocity;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this._onMomentumScrollBegin = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this._updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n this.setState((state, props) => {\n var cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport);\n var renderMask = VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));\n if (cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask)) {\n return null;\n }\n return {\n cellsAroundViewport,\n renderMask\n };\n });\n };\n this._createViewToken = (index, isViewable, props\n // $FlowFixMe[missing-local-annot]\n ) => {\n var data = props.data,\n getItem = props.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index, props),\n isViewable\n };\n };\n this._getOffsetApprox = (index, props) => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n var frameMetrics = this.__getFrameMetricsApprox(Math.floor(index), props);\n var remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n this.__getFrameMetricsApprox = (index, props) => {\n var frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var data = props.data,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\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 this._getFrameMetrics = (index, props) => {\n var data = props.data,\n getItem = props.getItem,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n var frame = this._frames[this._keyExtractor(item, index, props)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n this._getNonViewportRenderRegions = props => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {\n return [];\n }\n var lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n var focusedCellIndex = lastFocusedCellRenderer.props.index;\n var itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) {\n return [];\n }\n var first = focusedCellIndex;\n var heightOfCellsBeforeFocused = 0;\n for (var i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;\n }\n var last = focusedCellIndex;\n var heightOfCellsAfterFocused = 0;\n for (var _i = last + 1; _i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; _i++) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(_i, props).length;\n }\n return [{\n first,\n last\n }];\n };\n this._checkProps(_props);\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n }));\n } else {\n var _this$props3 = this.props,\n onViewableItemsChanged = _this$props3.onViewableItemsChanged,\n viewabilityConfig = _this$props3.viewabilityConfig;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n }\n var initialRenderRegion = VirtualizedList._initialRenderRegion(_props);\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(_props, initialRenderRegion)\n };\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n // For issue https://github.com/necolas/react-native-web/issues/995\n this.invertedWheelEventHandler = ev => {\n var scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop;\n var scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight;\n var clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight;\n var isEventTargetScrollable = scrollLength > clientLength;\n var delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;\n var leftoverDelta = delta;\n if (isEventTargetScrollable) {\n leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0);\n }\n var targetDelta = delta - leftoverDelta;\n if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n var node = this._scrollRef.getScrollableNode();\n if (this.props.horizontal) {\n ev.target.scrollLeft += targetDelta;\n var nextScrollLeft = node.scrollLeft - leftoverDelta;\n node.scrollLeft = !this.props.getItemLayout ? Math.min(nextScrollLeft, this._totalCellLength) : nextScrollLeft;\n } else {\n ev.target.scrollTop += targetDelta;\n var nextScrollTop = node.scrollTop - leftoverDelta;\n node.scrollTop = !this.props.getItemLayout ? Math.min(nextScrollTop, this._totalCellLength) : nextScrollTop;\n }\n ev.preventDefault();\n }\n };\n }\n _checkProps(props) {\n var onScroll = props.onScroll,\n windowSize = props.windowSize,\n getItemCount = props.getItemCount,\n data = props.data,\n initialScrollIndex = props.initialScrollIndex;\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(windowSizeOrDefault(windowSize) > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n invariant(getItemCount, 'VirtualizedList: The \"getItemCount\" prop must be provided');\n var itemCount = getItemCount(data);\n if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex) {\n console.warn(\"initialScrollIndex \\\"\" + initialScrollIndex + \"\\\" is not valid (list has \" + itemCount + \" items)\");\n this._hasWarned.initialScrollIndex = true;\n }\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n var flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\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 this._hasWarned.flexWrap = true;\n }\n }\n }\n static _createRenderMask(props, cellsAroundViewport, additionalRegions) {\n var itemCount = props.getItemCount(props.data);\n invariant(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, \"Invalid cells around viewport \\\"[\" + cellsAroundViewport.first + \", \" + cellsAroundViewport.last + \"]\\\" was passed to VirtualizedList._createRenderMask\");\n var renderMask = new CellRenderMask(itemCount);\n if (itemCount > 0) {\n var allRegions = [cellsAroundViewport, ...(additionalRegions !== null && additionalRegions !== void 0 ? additionalRegions : [])];\n for (var _i2 = 0, _allRegions = allRegions; _i2 < _allRegions.length; _i2++) {\n var region = _allRegions[_i2];\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n var initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n var stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);\n }\n return renderMask;\n }\n static _initialRenderRegion(props) {\n var _props$initialScrollI;\n var itemCount = props.getItemCount(props.data);\n var firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor((_props$initialScrollI = props.initialScrollIndex) !== null && _props$initialScrollI !== void 0 ? _props$initialScrollI : 0)));\n var lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;\n return {\n first: firstCellIndex,\n last: lastCellIndex\n };\n }\n static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {\n var stickyOffset = props.ListHeaderComponent ? 1 : 0;\n for (var itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({\n first: itemIdx,\n last: itemIdx\n });\n break;\n }\n }\n }\n _adjustCellsAroundViewport(props, cellsAroundViewport) {\n var data = props.data,\n getItemCount = props.getItemCount;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold);\n var _this$_scrollMetrics = this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n var newCellsAroundViewport;\n if (props.disableVirtualization) {\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)\n };\n } else {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n\n // Thus, we want to recalculate the windowed render limits if any of the following hold:\n // - initialScrollIndex is undefined or is 0\n // - initialScrollIndex > 0 AND scrolling is complete\n // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case\n // where the list is shorter than the visible area)\n if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n newCellsAroundViewport = computeWindowedRenderLimits(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics);\n invariant(newCellsAroundViewport.last < getItemCount(data), 'computeWindowedRenderLimits() should return range in-bounds');\n }\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n var childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);\n newCellsAroundViewport.last = childIdx !== null && childIdx !== void 0 ? childIdx : newCellsAroundViewport.last;\n }\n return newCellsAroundViewport;\n }\n _findFirstChildWithMore(first, last) {\n for (var ii = first; ii <= last; ii++) {\n var cellKeyForIndex = this._indicesToKeys.get(ii);\n if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, childList => childList.hasMore())) {\n return ii;\n }\n }\n return null;\n }\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey\n });\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.setupWebWheelHandler();\n }\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n ref: this\n });\n }\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.teardownWebWheelHandler();\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n setupWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(() => this.setupWebWheelHandler(), 50);\n return;\n }\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n static getDerivedStateFromProps(newProps, prevState) {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n var itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n var constrainedCells = VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells)\n };\n }\n _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = this;\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListHeaderComponent = _this$props4.ListHeaderComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n data = _this$props4.data,\n debug = _this$props4.debug,\n getItem = _this$props4.getItem,\n getItemCount = _this$props4.getItemCount,\n getItemLayout = _this$props4.getItemLayout,\n horizontal = _this$props4.horizontal,\n renderItem = _this$props4.renderItem;\n var stickyOffset = ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n var _loop = function _loop() {\n var item = getItem(data, ii);\n var key = _this._keyExtractor(item, ii, _this.props);\n _this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n var shouldListenForLayout = getItemLayout == null || debug || _this._fillRateHelper.enabled();\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, _extends({\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n ListItemComponent: ListItemComponent,\n cellKey: key,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onCellFocusCapture: e => _this._onCellFocusCapture(key),\n onUnmount: _this._onCellUnmount,\n ref: _ref => {\n _this._cellRefs[key] = _ref;\n },\n renderItem: renderItem\n }, shouldListenForLayout && {\n onCellLayout: _this._onCellLayout\n })));\n prevCellKey = key;\n };\n for (var ii = first; ii <= last; ii++) {\n _loop();\n }\n }\n static _constrainToItemCount(cells, props) {\n var itemCount = props.getItemCount(props.data);\n var last = Math.min(itemCount - 1, cells.last);\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last\n };\n }\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n _keyExtractor(item, index, props\n // $FlowFixMe[missing-local-annot]\n ) {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n var key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n render() {\n this._checkProps(this.props);\n var _this$props5 = this.props,\n ListEmptyComponent = _this$props5.ListEmptyComponent,\n ListFooterComponent = _this$props5.ListFooterComponent,\n ListHeaderComponent = _this$props5.ListHeaderComponent;\n var _this$props6 = this.props,\n data = _this$props6.data,\n horizontal = _this$props6.horizontal;\n var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n var _element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\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: [inversionStyle, this.props.ListHeaderComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element)));\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n var itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-empty',\n key: \"$empty\"\n }, /*#__PURE__*/React.cloneElement(_element2, {\n onLayout: event => {\n this._onLayoutEmpty(event);\n if (_element2.props.onLayout) {\n _element2.props.onLayout(event);\n }\n },\n style: [inversionStyle, _element2.props.style]\n })));\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = this._getSpacerKey(!horizontal);\n var renderRegions = this.state.renderMask.enumerateRegions();\n var lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n for (var _iterator = _createForOfIteratorHelperLoose(renderRegions), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n var isLastSpacer = section === lastSpacer;\n var constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n var last = constrainToMeasured ? clamp(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last;\n var firstMetrics = this.__getFrameMetricsApprox(section.first, this.props);\n var lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n var spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$spacer-\" + section.first,\n style: {\n [spacerKey]: spacerSize\n }\n }));\n } else {\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);\n }\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\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n var _element3 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListFooterComponent, null);\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: [inversionStyle, this.props.ListFooterComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element3)));\n }\n\n // 4. Render the ScrollView\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: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: horizontalOrDefault(this.props.horizontal),\n getOutermostParentListRef: this._getOutermostParentListRef,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n /* https://github.com/necolas/react-native-web/issues/2239: Re-enable when ScrollView.Context.Consumer is available.\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\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 componentDidUpdate(prevProps) {\n var _this$props7 = this.props,\n data = _this$props7.data,\n extraData = _this$props7.extraData;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n var hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n\n // flag to prevent infinite hiPri cell limit update\n\n // $FlowFixMe[missing-local-annot]\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics);\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _onCellFocusCapture(cellKey) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n _triggerRemeasureForChildListsInCell(cellKey) {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n measureLayoutRelativeToContainingList() {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({\n x,\n y\n });\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height\n });\n var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n }, 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 _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n var windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset;\n var frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props);\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((f, ii) => /*#__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 })), /*#__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 _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n _maybeCallOnEdgeReached() {\n var _this$props8 = this.props,\n data = _this$props8.data,\n getItemCount = _this$props8.getItemCount,\n onStartReached = _this$props8.onStartReached,\n onStartReachedThreshold = _this$props8.onStartReachedThreshold,\n onEndReached = _this$props8.onEndReached,\n onEndReachedThreshold = _this$props8.onEndReachedThreshold,\n initialScrollIndex = _this$props8.initialScrollIndex;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromStart = offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n var DEFAULT_THRESHOLD_PX = 2;\n var startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var isWithinStartThreshold = distanceFromStart <= startThreshold;\n var isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd\n });\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) {\n // On initial mount when using initialScrollIndex the offset will be 0 initially\n // and will trigger an unexpected onStartReached. To avoid this we can use\n // timestamp to differentiate between the initial scroll metrics and when we actually\n // received the first scroll event.\n if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({\n distanceFromStart\n });\n }\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0;\n this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0;\n }\n }\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n\n _scheduleCellsToRenderUpdate() {\n var _this$state$cellsArou = this.state.cellsAroundViewport,\n first = _this$state$cellsArou.first,\n last = _this$state$cellsArou.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 onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold);\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n var distTop = offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (!hiPri && last >= 0 && last < itemCount - 1) {\n var distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset + visibleLength);\n hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n\n _updateViewableItems(props, cellsAroundViewport) {\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);\n });\n }\n}\nVirtualizedList.contextType = VirtualizedListContext;\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: 'scaleY(-1)'\n },\n horizontallyInverted: {\n transform: 'scaleX(-1)'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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 * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter {\n constructor() {\n this._registry = {};\n }\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener(eventType, listener, context) {\n var registrations = allocate(this._registry, eventType);\n var registration = {\n context,\n listener,\n remove() {\n registrations.delete(registration);\n }\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit(eventType) {\n var registrations = this._registry[eventType];\n if (registrations != null) {\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 for (var _i = 0, _arr = [...registrations]; _i < _arr.length; _i++) {\n var registration = _arr[_i];\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners(eventType) {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount(eventType) {\n var registrations = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\nfunction allocate(registry, eventType) {\n var registrations = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\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}","\"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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPrefixedValue;\nvar RE = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\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 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 (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\nvar emptyFunction = require(\"./emptyFunction\");\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\n\nfunction printWarning(format) {\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 var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\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\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/* Font Face Observer v2.3.0 - © Bram Stein. License: BSD-3-Clause */(function(){function p(a,c){document.addEventListener?a.addEventListener(\"scroll\",c,!1):a.attachEvent(\"scroll\",c)}function u(a){document.body?a():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",function b(){document.removeEventListener(\"DOMContentLoaded\",b);a()}):document.attachEvent(\"onreadystatechange\",function g(){if(\"interactive\"==document.readyState||\"complete\"==document.readyState)document.detachEvent(\"onreadystatechange\",g),a()})};function w(a){this.g=document.createElement(\"div\");this.g.setAttribute(\"aria-hidden\",\"true\");this.g.appendChild(document.createTextNode(a));this.h=document.createElement(\"span\");this.i=document.createElement(\"span\");this.m=document.createElement(\"span\");this.j=document.createElement(\"span\");this.l=-1;this.h.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.i.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\nthis.j.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.m.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";this.h.appendChild(this.m);this.i.appendChild(this.j);this.g.appendChild(this.h);this.g.appendChild(this.i)}\nfunction x(a,c){a.g.style.cssText=\"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\"+c+\";\"}function B(a){var c=a.g.offsetWidth,b=c+100;a.j.style.width=b+\"px\";a.i.scrollLeft=b;a.h.scrollLeft=a.h.scrollWidth+100;return a.l!==c?(a.l=c,!0):!1}function C(a,c){function b(){var e=g;B(e)&&null!==e.g.parentNode&&c(e.l)}var g=a;p(a.h,b);p(a.i,b);B(a)};function D(a,c,b){c=c||{};b=b||window;this.family=a;this.style=c.style||\"normal\";this.weight=c.weight||\"normal\";this.stretch=c.stretch||\"normal\";this.context=b}var E=null,F=null,G=null,H=null;function I(a){null===F&&(M(a)&&/Apple/.test(window.navigator.vendor)?(a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent),F=!!a&&603>parseInt(a[1],10)):F=!1);return F}function M(a){null===H&&(H=!!a.document.fonts);return H}\nfunction N(a,c){var b=a.style,g=a.weight;if(null===G){var e=document.createElement(\"div\");try{e.style.font=\"condensed 100px sans-serif\"}catch(q){}G=\"\"!==e.style.font}return[b,g,G?a.stretch:\"\",\"100px\",c].join(\" \")}\nD.prototype.load=function(a,c){var b=this,g=a||\"BESbswy\",e=0,q=c||3E3,J=(new Date).getTime();return new Promise(function(K,L){if(M(b.context)&&!I(b.context)){var O=new Promise(function(r,t){function h(){(new Date).getTime()-J>=q?t(Error(\"\"+q+\"ms timeout exceeded\")):b.context.document.fonts.load(N(b,'\"'+b.family+'\"'),g).then(function(n){1<=n.length?r():setTimeout(h,25)},t)}h()}),P=new Promise(function(r,t){e=setTimeout(function(){t(Error(\"\"+q+\"ms timeout exceeded\"))},q)});Promise.race([P,O]).then(function(){clearTimeout(e);\nK(b)},L)}else u(function(){function r(){var d;if(d=-1!=k&&-1!=l||-1!=k&&-1!=m||-1!=l&&-1!=m)(d=k!=l&&k!=m&&l!=m)||(null===E&&(d=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),E=!!d&&(536>parseInt(d[1],10)||536===parseInt(d[1],10)&&11>=parseInt(d[2],10))),d=E&&(k==y&&l==y&&m==y||k==z&&l==z&&m==z||k==A&&l==A&&m==A)),d=!d;d&&(null!==f.parentNode&&f.parentNode.removeChild(f),clearTimeout(e),K(b))}function t(){if((new Date).getTime()-J>=q)null!==f.parentNode&&f.parentNode.removeChild(f),\nL(Error(\"\"+q+\"ms timeout exceeded\"));else{var d=b.context.document.hidden;if(!0===d||void 0===d)k=h.g.offsetWidth,l=n.g.offsetWidth,m=v.g.offsetWidth,r();e=setTimeout(t,50)}}var h=new w(g),n=new w(g),v=new w(g),k=-1,l=-1,m=-1,y=-1,z=-1,A=-1,f=document.createElement(\"div\");f.dir=\"ltr\";x(h,N(b,\"sans-serif\"));x(n,N(b,\"serif\"));x(v,N(b,\"monospace\"));f.appendChild(h.g);f.appendChild(n.g);f.appendChild(v.g);b.context.document.body.appendChild(f);y=h.g.offsetWidth;z=n.g.offsetWidth;A=v.g.offsetWidth;t();\nC(h,function(d){k=d;r()});x(h,N(b,'\"'+b.family+'\",sans-serif'));C(n,function(d){l=d;r()});x(n,N(b,'\"'+b.family+'\",serif'));C(v,function(d){m=d;r()});x(v,N(b,'\"'+b.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=D:(window.FontFaceObserver=D,window.FontFaceObserver.prototype.load=D.prototype.load);}());\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\nfunction backgroundClip() {\n return null;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar CROSS_FADE_REGEX = /cross-fade\\(/g;\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('cross-fade(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(CROSS_FADE_REGEX, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar FILTER_REGEX = /filter\\(/g;\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('filter(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(FILTER_REGEX, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\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\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\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 = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\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 = 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}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\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\nmodule.exports = apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\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 == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\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 == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * 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 == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 * 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\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\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\nmodule.exports = baseAssignValue;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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 == null ? value : iteratee(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\nmodule.exports = baseDifference;\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\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\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\nmodule.exports = baseFlatten;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\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 = castPath(path, object);\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\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\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\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\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 return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\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\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\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\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\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\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\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\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\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\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\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\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\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\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\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 * 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 (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\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\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\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 * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\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\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\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\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\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\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\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 = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\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 || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\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\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\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\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\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\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\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\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * 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\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\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\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\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\nmodule.exports = setToString;\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/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\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\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\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 strictIndexOf(array, value, fromIndex) {\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\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\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 = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\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\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\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 * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\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\nmodule.exports = constant;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nmodule.exports = differenceWith;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseGet = require('./_baseGet');\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","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\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\nmodule.exports = hasIn;\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\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 `clear`, `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 != null && 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) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\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\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","var baseToString = require('./_baseToString');\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 convert.\n * @returns {string} Returns the converted 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\nmodule.exports = toString;\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * 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 * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\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 */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\n\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n\n return function styleq() {\n // Keep track of property commits to the className\n var definedProperties = []; // The className and inline style to build up\n\n var className = '';\n var inlineStyle = null; // The current position in the cache graph\n\n var nextCache = disableCache ? null : cache; // This way of creating an array from arguments is fastest\n\n var styles = new Array(arguments.length);\n\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n } // Iterate over styles from last to first\n\n\n while (styles.length > 0) {\n var possibleStyle = styles.pop(); // Skip empty items\n\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n } // Push nested styles back onto the stack to be processed\n\n\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n\n continue;\n } // Process an individual style object\n\n\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n\n if (style.$$css) {\n // Build up the class names defined by this object\n var classNameChunk = ''; // Check the cache to see if we've already done this work\n\n if (nextCache != null && nextCache.has(style)) {\n // Cache: read\n var cacheEntry = nextCache.get(style);\n\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0]; // $FlowIgnore\n\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[2];\n }\n } // Update the chunks with data from this object\n else {\n // The properties defined by this object\n var definedPropertiesChunk = [];\n\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) continue; // Each property value is used as an HTML class name\n // { 'debug.string': 'debug.string', opacity: 's-jskmnoqp' }\n\n if (typeof value === 'string' || value === null) {\n // Only add to chunks if this property hasn't already been seen\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } // If we encounter a value that isn't a string or `null`\n else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n } // Cache: write\n\n\n if (nextCache != null) {\n // Create the next WeakMap for this sequence of styles\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);\n nextCache = weakMap;\n }\n } // Order of classes in chunks matches property-iteration order of style\n // object. Order of chunks matches passed order of styles from first to\n // last (which we iterate over in reverse).\n\n\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } // ----- DYNAMIC: Process inline style object -----\n else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n\n for (var _prop in style) {\n var _value = style[_prop];\n\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n if (subStyle == null) {\n subStyle = {};\n }\n\n subStyle[_prop] = _value;\n }\n\n definedProperties.push(_prop); // Cache is unnecessary overhead if results can't be reused.\n\n nextCache = null;\n }\n }\n }\n\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n\n var styleProps = [className, inlineStyle];\n return styleProps;\n };\n}\n\nvar styleq = createStyleq();\nexports.styleq = styleq;\nstyleq.factory = createStyleq;","/**\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'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.localizeStyle = localizeStyle;\nvar cache = new WeakMap();\nvar markerProp = '$$css$localize';\n/**\n * The compiler polyfills logical properties and values, generating a class\n * name for both writing directions. The style objects are annotated by\n * the compiler as needing this runtime transform. The results are memoized.\n *\n * { '$$css$localize': true, float: [ 'float-left', 'float-right' ] }\n * => { float: 'float-left' }\n */\n\nfunction compileStyle(style, isRTL) {\n // Create a new compiled style for styleq\n var compiledStyle = {};\n\n for (var prop in style) {\n if (prop !== markerProp) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n compiledStyle[prop] = isRTL ? value[1] : value[0];\n } else {\n compiledStyle[prop] = value;\n }\n }\n }\n\n return compiledStyle;\n}\n\nfunction localizeStyle(style, isRTL) {\n if (style[markerProp] != null) {\n var compiledStyleIndex = isRTL ? 1 : 0; // Check the cache in case we've already seen this object\n\n if (cache.has(style)) {\n var _cachedStyles = cache.get(style);\n\n var _compiledStyle = _cachedStyles[compiledStyleIndex];\n\n if (_compiledStyle == null) {\n // Update the missing cache entry\n _compiledStyle = compileStyle(style, isRTL);\n _cachedStyles[compiledStyleIndex] = _compiledStyle;\n cache.set(style, _cachedStyles);\n }\n\n return _compiledStyle;\n } // Create a new compiled style for styleq\n\n\n var compiledStyle = compileStyle(style, isRTL);\n var cachedStyles = new Array(2);\n cachedStyles[compiledStyleIndex] = compiledStyle;\n cache.set(style, cachedStyles);\n return compiledStyle;\n }\n\n return style;\n}","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelperLoose(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (t) return (t = t.call(r)).next.bind(t);\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var o = 0;\n return function () {\n return o >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[o++]\n };\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}\nexport { _createForOfIteratorHelperLoose 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 };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits 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 objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","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}\nexport { _nonIterableRest as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","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}\nexport { _nonIterableSpread 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 };","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 arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["_interopRequireDefault","require","Object","defineProperty","exports","value","_toConsumableArray2","_extends2","_slicedToArray2","_objectWithoutProperties2","_reactDom","_react","obj","nodeInterop","__esModule","default","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","_reactNative","_excluded","_this","this","_jsxFileName","WeakMap","cacheBabelInterop","cacheNodeInterop","valueToEvent","nativeEvent","RCTSliderWebComponent","forwardRef","_ref","forwardedRef","initialValue","_ref$minimumValue","minimumValue","_ref$maximumValue","maximumValue","_ref$step","step","_ref$minimumTrackTint","minimumTrackTintColor","_ref$maximumTrackTint","maximumTrackTintColor","_ref$thumbTintColor","thumbTintColor","_ref$thumbStyle","thumbStyle","_ref$style","style","_ref$inverted","inverted","_ref$disabled","disabled","_ref$trackHeight","trackHeight","_ref$thumbSize","thumbSize","thumbImage","_ref$onRNCSliderSlidi","onRNCSliderSlidingStart","_","_ref$onRNCSliderSlidi2","onRNCSliderSlidingComplete","_ref$onRNCSliderValue","onRNCSliderValueChange","others","containerSize","useRef","width","height","containerPositionX","containerRef","createRef","containerPositionInvalidated","_React$useState","useState","_React$useState2","setValue","lastInitialValue","animationValues","val","Animated","Value","min","max","diff","current","useEffect","minPercent","multiply","divide","subtract","maxPercent","onValueChange","useCallback","onSlidingStart","onSlidingComplete","_updateValue","newValue","hardRounded","decimalPrecision","Number","parseFloat","toFixed","withinBounds","Math","useLayoutEffect","invalidateContainerPosition","onDocumentScroll","e","target","contains","window","addEventListener","document","capture","removeEventListener","containerStyle","StyleSheet","compose","flexGrow","flexShrink","flexBasis","flexDirection","alignItems","trackStyle","borderRadius","userSelect","minimumTrackStyle","assign","backgroundColor","maximumTrackStyle","thumbViewStyle","zIndex","overflow","calculatePrecision","updateContainerPositionX","_ReactDOM$findDOMNode","positionX","findDOMNode","getBoundingClientRect","x","getValueFromNativeEvent","pageX","_containerSize$curren","containerX","round","useImperativeHandle","updateValue","createElement","View","ref","onLayout","_ref4","layout","accessibilityActions","name","label","onAccessibilityAction","event","tenth","actionName","accessible","accessibilityRole","onStartShouldSetResponder","onMoveShouldSetResponder","onResponderGrant","onResponderRelease","_ref2","onResponderMove","_ref3","__self","__source","fileName","lineNumber","columnNumber","pointerEvents","undefined","Image","source","decimals","map","split","pop","length","apply","Infinity","displayName","_default","_index","LIMIT_MIN_VALUE","MIN_SAFE_INTEGER","LIMIT_MAX_VALUE","MAX_SAFE_INTEGER","SliderWithRef","props","_props$accessibilityS","styles","slider","localProps","onValueChangeEvent","_disabled","accessibilityState","_accessibilityState","onSlidingStartEvent","onSlidingCompleteEvent","onAccessibilityActionEvent","lowerLimit","upperLimit","Platform","OS","resolveAssetSource","onChange","onResponderTerminationRequest","onRNCSliderAccessibilityAction","defaultProps","tapToSeek","create","assets","module","registerAsset","asset","push","getAssetByID","assetId","getScaledAssetPath","scale","AssetSourceResolver","pickScale","scales","PixelRatio","scaleSuffix","type","httpServerLocation","replace","serverUrl","jsbundleUrl","_classCallCheck","_createClass","assetServerURL","fromUrl","URL","searchParams","hash","fromSource","toString","origin","_this$asset$width","_this$asset$height","__packager_asset","uri","deviceScale","i","manifestBaseUrl","_downloadAsync","_asyncToGenerator","arguments","assetMapOverride","selectAssetSource","meta","_meta$fileHashes$inde","_meta$fileUris$index","_manifest2$extra","_manifest2$extra$expo","_objectSpread","index","findIndex","s","fileHashes","fileUris","resolveUri","assetUrlOverride","_len","paths","Array","_key","combined","part","trim","filter","join","resolved","pathJoin","fileScale","fileExtension","encodeURIComponent","suffix","params","URLSearchParams","platform","test","manifest2","devServerUrl","extra","expoGo","developer","debuggerHost","bundleUrl","baseUrl","href","NativeModules","ExponentKernel","getFilename","url","_URL","pathname","substring","lastIndexOf","getBasename","getFileExtension","filename","dotIndex","_customSourceTransformer","setCustomSourceTransformer","transformer","resolver","defaultAsset","Asset","_ref$hash","localUri","downloading","downloaded","_downloadCallbacks","AssetUris","_downloadAsync2","Promise","resolve","reject","_yield$ImageAssets$ge","isDOMAvailable","img","onerror","onload","naturalWidth","naturalHeight","src","_x","_x2","_x3","_x4","downloadAsync","forEach","moduleId","moduleIds","isArray","all","fromModule","virtualAssetModule","fromURI","Error","byHash","metaHash","_selectAssetSource","byUri","indexOf","extension","startsWith","_DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS","_DEFAULT_INITIAL_PLAYBACK_STATUS","positionMillis","progressUpdateIntervalMillis","shouldPlay","rate","shouldCorrectPitch","volume","audioPan","isMuted","isLooping","getNativeSourceFromSource","headers","overridingExtension","_getAssetFromPlaybackSource","overrideFileExtensionAndroid","assertStatusValuesInBounds","status","RangeError","getNativeSourceAndFullInitialStatusForLoadAsync","_getNativeSourceAndFullInitialStatusForLoadAsync","initialStatus","downloadFirst","fullInitialStatus","nativeSource","getUnloadedStatus","error","isLoaded","PlaybackMixin","playAsync","_playAsync","setStatusAsync","playFromPositionAsync","_playFromPositionAsync","tolerances","seekMillisToleranceAfter","toleranceMillisAfter","seekMillisToleranceBefore","toleranceMillisBefore","pauseAsync","_pauseAsync","stopAsync","_stopAsync","setPositionAsync","_setPositionAsync","_x5","setRateAsync","_setRateAsync","pitchCorrectionQuality","PitchCorrectionQuality","Medium","_x6","setVolumeAsync","_setVolumeAsync","_x7","_x8","setIsMutedAsync","_setIsMutedAsync","_x9","setIsLoopingAsync","_setIsLoopingAsync","_x10","setProgressUpdateIntervalAsync","_setProgressUpdateIntervalAsync","_x11","ExponentAV","Qualities","Low","High","InterruptionModeIOS","InterruptionModeAndroid","_recorderExists","eventEmitter","getPermissionsAsync","_getPermissionsAsync","requestPermissionsAsync","_requestPermissionsAsync","usePermissions","createPermissionHook","getMethod","requestMethod","Recording","_subscription","_canRecord","_isDoneRecording","_finalDurationMillis","_uri","_onRecordingStatusUpdate","_progressUpdateTimeoutVariable","_progressUpdateIntervalMillis","_options","_cleanupForUnloadedRecorder","finalStatus","_finalStatus$duration","durationMillis","remove","_disablePolling","getStatusAsync","_pollingLoop","isAudioEnabled","setTimeout","_unused","_performOperationAndHandleStatusAsync","getAudioRecordingStatus","canRecord","isRecording","isDoneRecording","_callOnRecordingStatusUpdateForNewStatus","clearTimeout","_performOperationAndHandleStatusAsync2","operation","throwIfAudioIsDisabled","onRecordingStatusUpdate","_enablePollingIfNecessaryAndPossible","_prepareToRecordAsync","options","RecordingOptionsPresets","LOW_QUALITY","android","ios","extensionRegex","addListener","_yield$ExponentAV$pre","prepareAudioRecorder","currentStatus","_getAvailableInputs","getAvailableInputs","_getCurrentInput","getCurrentInput","_setInput","inputUid","setInput","_startAsync","startAudioRecording","pauseAudioRecording","_stopAndUnloadAsync","_stopResult","stopResult","stopError","stopAudioRecording","err","unloadAudioRecorder","_createNewLoadedSound","onPlaybackStatusUpdate","console","warn","createNewLoadedSoundAsync","_createNewLoadedSoundAsync","Sound","createAsync","recording","setOnRecordingStatusUpdate","prepareToRecordAsync","keepAudioActiveHint","startAsync","stopAndUnloadAsync","_populateMissingKeys","userAudioMode","defaultAudioMode","defaultMode","allowsRecordingIOS","interruptionModeIOS","MixWithOthers","playsInSilentModeIOS","staysActiveInBackground","interruptionModeAndroid","DuckOthers","shouldDuckAndroid","playThroughEarpieceAndroid","currentAudioMode","setAudioModeAsync","_setAudioModeAsync","partialMode","mode","setAudioMode","_enabled","setIsEnabledAsync","_setIsEnabledAsync","setAudioIsEnabled","AndroidOutputFormat","AndroidAudioEncoder","IOSOutputFormat","IOSAudioQuality","IOSBitRateStrategy","HIGH_QUALITY","isMeteringEnabled","outputFormat","MPEG_4","audioEncoder","AAC","sampleRate","numberOfChannels","bitRate","MPEG4AAC","audioQuality","MAX","linearPCMBitDepth","linearPCMIsBigEndian","linearPCMIsFloat","web","mimeType","bitsPerSecond","THREE_GPP","AMR_NB","MIN","_loaded","_loading","_lastStatusUpdate","_lastStatusUpdateTime","_subscriptions","_eventEmitter","EventEmitter","_coalesceStatusUpdatesInMillis","_onPlaybackStatusUpdate","_onMetadataUpdate","_onAudioSampleReceived","_internalStatusUpdateCallback","_callOnPlaybackStatusUpdateForNewStatus","_internalMetadataUpdateCallback","metadata","_internalErrorCallback","_errorCallback","_clearSubscriptions","getStatusForSound","shouldDismissBasedOnCoalescing","JSON","stringify","Date","now","getTime","globalThis","__EXAV_setOnAudioSampleReceivedCallback","UnavailabilityError","onMetadataUpdate","callback","_updateAudioSampleReceivedCallback","_loadAsync","_this2","_yield$getNativeSourc","loadForSound","then","result","_result","_slicedToArray","_subscribeToNativeEvents","catch","_unloadAsync","unloadForSound","_setStatusAsync","_this3","setStatusForSound","_replayAsync","_this4","replaySound","_ref5","_ref6","sound","setOnPlaybackStatusUpdate","loadAsync","f","y","z","ROTL","n","bytes","K","H","msg","unescape","charCodeAt","l","N","ceil","M","j","pow","floor","W","t","a","b","c","d","T","byteToHex","substr","buf","offset","bth","Uuidv5Namespace","version","hashfunc","generateUUID","namespace","off","str","stringToBytes","uuid","hex","parseInt","uuidToBytes","TypeError","concat","idx","bytesToUuid","DNS","v35","sha1","SyntheticPlatformEmitter","DeviceEventEmitter","_getPermissionWithQueryAsync","navigator","permissions","query","state","PermissionStatus","GRANTED","DENIED","UNDETERMINED","_unused2","getUserMedia","constraints","mediaDevices","webkitGetUserMedia","mozGetUserMedia","code","getStatusFromMedia","media","isPlaying","currentTime","paused","ended","readyState","duration","autoplay","isBuffering","playbackRate","muted","loop","didJustFinish","setStatusForMedia","_setStatusForMedia","play","pause","mediaRecorder","mediaRecorderUptimeOfLastStartResume","mediaRecorderDurationAlreadyRecorded","mediaRecorderIsRecording","getAudioRecorderDurationMillis","getStatusForVideo","_getStatusForVideo","element","loadForVideo","_loadForVideo","unloadForVideo","_unloadForVideo","setStatusForVideo","_setStatusForVideo","replayVideo","_replayVideo","_x12","_setAudioMode","_setAudioIsEnabled","_getStatusForSound","_x13","_loadForSound","Audio","ontimeupdate","emit","message","_x14","_x15","_unloadForSound","removeAttribute","load","_x16","_setStatusForSound","_x17","_x18","_replaySound","_x19","_x20","_getAudioRecordingStatus","_mediaRecorder","_mediaRecorder2","_mediaRecorder3","_prepareAudioRecorder","stream","audio","MediaRecorder","getTracks","track","stop","_yield$this$getAudioR","_objectWithoutProperties","_x21","_startAudioRecording","resume","start","_pauseAudioRecording","_stopAudioRecording","dataPromise","data","createObjectURL","_unloadAudioRecorder","maybeStatus","getPermissionWithQueryAsync","expires","canAskAgain","granted","FontDisplay","getFontFaceStyleSheet","styleSheet","getStyleElement","sheet","getFontFaceRulesMatchingResource","fontFamilyName","rules","_toConsumableArray","cssRules","items","rule","CSSFontFaceRule","getFontFaceRules","fontFamily","display","fontDisplay","serverContext","Set","unloadAllAsync","_unloadAllAsync","getElementById","ID","HTMLStyleElement","removeChild","unloadAsync","item","deleteRule","getServerResources","entries","css","links","resourceId","$$type","children","id","rel","as","crossorigin","getHeadElements","Boolean","resetServerContext","clear","_getFontFaceRulesMatc","resource","values","find","add","_createWebFontTemplate","head","appendChild","CodedError","fontStyle","styleElement","styleElementIE","cssText","textNode","createTextNode","_createWebStyle","userAgent","isIOS","match","isSafari","isEdge","includes","isIE","isFirefox","isFontLoadingListenerSupported","FontObserver","AUTO","uriFromFontSource","getAssetForSource","throwInvalidSourceError","loadSingleFontAsync","input","ExpoFontLoader","loaded","loadPromises","registerStaticFont","fontFamilyOrFontMap","isServer","fontMap","names","keys","loadFontInNamespaceAsync","_loadFontInNamespaceAsync","useFonts","_useState","every","isMapLoaded","_useState2","setLoaded","_useState3","_useState4","setError","MediaTypeInput","_defineProperty","MediaTypeOptions","All","Images","Videos","launchImageLibraryAsync","_launchImageLibraryAsync","_ref$mediaTypes","mediaTypes","_ref$allowsMultipleSe","allowsMultipleSelection","_ref$base","base64","openFileBrowserAsync","canceled","launchCameraAsync","_launchCameraAsync","_ref2$mediaTypes","_ref2$allowsMultipleS","_ref2$base","getCameraPermissionsAsync","_getCameraPermissionsAsync","permissionGrantedResponse","requestCameraPermissionsAsync","_requestCameraPermissionsAsync","getMediaLibraryPermissionsAsync","_getMediaLibraryPermissionsAsync","_writeOnly","requestMediaLibraryPermissionsAsync","_requestMediaLibraryPermissionsAsync","_ref3$capture","_ref3$allowsMultipleS","mediaTypeFormat","setAttribute","String","random","body","files","from","file","targetFile","reader","FileReader","returnRaw","image","_image$naturalWidth","_image$naturalHeight","readAsDataURL","MouseEvent","dispatchEvent","ExponentImagePicker","writeOnly","imagePickerMethod","useMediaLibraryPermissions","useCameraPermissions","getPendingResultAsync","_getPendingResultAsync","aspect","quality","videoMaxDuration","_aspect","validateOptions","allowsEditing","VideoExportPreset","UIImagePickerControllerQualityType","UIImagePickerPresentationStyle","UIImagePickerPreferredAssetRepresentationMode","CameraType","nativeEmitterSubscriptionKey","nativeModule","_listenerCount","__expo_module_name__","EXReactNativeEventEmitter","_NativeModules$EXReac","args","addProxiedListener","removeListeners","_NativeModules$EXReac2","_len2","_key2","removeProxiedListeners","_nativeModule","NativeEventEmitter","eventName","listener","startObserving","nativeEmitterSubscription","subscription","removeSubscription","removedListenerCount","listenerCount","listeners","removeAllListeners","invariant","stopObserving","_this$_eventEmitter","_len3","_key3","methods","isMounted","setStatus","_ref$get","_ref$request","request","permissionOptions","getPermission","response","requestPermission","usePermission","_window$document","canUseEventListeners","attachEvent","canUseViewport","screen","ReactNativePlatform","select","isAsyncDebugging","_isNativeReflectConstruct","valueOf","Reflect","construct","_wrapNativeSuper","r","Map","Function","Wrapper","o","p","bind","setPrototypeOf","getPrototypeOf","constructor","enumerable","writable","configurable","_Error","_callSuper","_inherits","_CodedError","moduleName","propertyName","setStatusBarBackgroundColor","setStatusBarNetworkActivityIndicatorVisible","setStatusBarHidden","setStatusBarStyle","setStatusBarTranslucent","StatusBar","_Dimensions$get","Dimensions","useDetectDevice","isAndroid","isTablet","pixelDensity","adjustedWidth","adjustedHeight","isOrientationPortrait","isOrientationLandscape","useDeviceOrientation","initialState","portrait","landscape","orientation","setOrientation","container","padding","justifyContent","textInput","I18nManager","isRTL","flex","fontSize","textAlign","marginBottom","row","icon","ic_close","_props$placeholderTex","placeholderTextColor","_props$placeholder","placeholder","showIcon","inputStyle","iconStyle","_props$onChangeText","onChangeText","_value","renderLeftIcon","renderRightIcon","text","setText","React","TouchableWithoutFeedback","TextInput","_extends","flatten","TouchableOpacity","onPress","mainWrap","borderWidth","borderColor","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","flex1","wrapTop","dropdown","title","marginVertical","writingDirection","textItem","paddingHorizontal","margin","fullScreen","ic_down","statusBarHeight","currentHeight","DropdownComponent","currentRef","testID","itemTestIDField","_props$style","placeholderStyle","selectedTextStyle","itemContainerStyle","itemTextStyle","inputSearchStyle","_props$selectedTextPr","selectedTextProps","_props$data","labelField","valueField","searchField","_props$activeColor","activeColor","_props$iconColor","iconColor","searchPlaceholder","_props$search","search","_props$maxHeight","maxHeight","_props$minHeight","minHeight","_props$disable","disable","_props$keyboardAvoidi","keyboardAvoiding","_props$inverted","renderItem","renderInputSearch","onFocus","onBlur","_props$autoScroll","autoScroll","_props$showsVerticalS","showsVerticalScrollIndicator","_props$dropdownPositi","dropdownPosition","flatListProps","searchQuery","confirmSelectItem","onConfirmSelectItem","accessibilityLabel","itemAccessibilityLabelField","_props$mode","_props$closeModalWhen","closeModalWhenSelectedItem","_props$excludeItems","excludeItems","_props$excludeSearchI","excludeSearchItems","refList","visible","setVisible","currentValue","setCurrentValue","_useState5","_useState6","listData","setListData","_useState7","_useState8","position","setPosition","_useState9","_useState10","keyboardHeight","setKeyboardHeight","_useState11","_useState12","searchText","setSearchText","styleContainerVertical","useMemo","styleHorizontal","alignSelf","open","eventOpen","close","eventClose","excludeData","_differenceWith","obj1","obj2","_get","filterData","onSearch","scrollIndex","font","_measure","measureInWindow","pageY","isFull","top","bottom","left","onKeyboardDidShow","endCoordinates","onKeyboardDidHide","susbcriptionKeyboardDidShow","Keyboard","susbcriptionKeyboardDidHide","getValue","defaultValue","getItem","_isEqual","_findIndex","scrollToIndex","animated","showOrClose","visibleStatus","dismiss","dataSearch","labelText","_get2","toLowerCase","normalize","excludeSearchData","onSelect","_renderItem","isSelected","selected","_assign","TouchableHighlight","underlayColor","Text","renderSearch","CInput","autoCorrect","tintColor","_renderList","isTopPosition","isInverted","_renderListHelper","FlatList","keyboardShouldPersistTaps","onScrollToIndexFailed","keyExtractor","_item","_renderModal","styleVertical","extendHeight","Modal","transparent","statusBarTranslucent","supportedOrientations","onRequestClose","paddingBottom","paddingTop","_renderDropdown","dropdownInside","wrapItem","rowSelectedItem","flexWrap","selectedItem","marginRight","selectedTextItem","marginLeft","color","selectedTextLeftItem","MultiSelectComponent","selectedStyle","maxSelect","_props$inside","inside","renderSelectedItem","_props$alwaysRenderSe","alwaysRenderSelectedItem","confirmUnSelectItem","_props$visibleSelecte","visibleSelectedItem","setKey","_useState13","_useState14","newCurrentValue","splice","checkSelected","unSelect","_renderItemSelected","list","_renderDropdownInside","imageField","imageStyle","selectItem","Dropdown","createSvgCircle","cx","cy","fill","strokeWidth","ActivityIndicator","_props$animating","animating","_props$color","_props$hidesWhenStopp","hidesWhenStopped","_props$size","size","other","_objectWithoutPropertiesLoose","svg","viewBox","stroke","opacity","strokeDasharray","strokeDashoffset","role","indicatorSizes","animation","animationPause","visibility","animationDuration","animationKeyframes","transform","animationTimingFunction","animationIterationCount","animationPlayState","small","large","isLayoutAnimationEnabled","shouldEmitW3CPointerEvents","shouldPressibilityUseW3CPointerEventsForHover","animatedShouldDebounceQueueFlush","animatedShouldUseSingleOp","nativeEventEmitter","NativeAnimatedModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","queueOperations","queue","flushQueueTimeout","nativeOps","API","tag","saveValueCallback","queueOperation","setWaitingForIdentifier","ReactNativeFeatureFlags","unsetWaitingForIdentifier","delete","disableQueue","clearImmediate","setImmediate","flushQueue","fn","createAnimatedNode","config","updateAnimatedNodeConfig","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","animationId","nodeTag","endCallback","stopAnimation","setAnimatedNodeValue","setAnimatedNodeOffset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","viewTag","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","eventMapping","removeAnimatedEventFromView","animatedNodeTag","SUPPORTED_COLOR_STYLES","borderBottomColor","borderEndColor","borderLeftColor","borderRightColor","borderStartColor","borderTopColor","SUPPORTED_STYLES","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","scaleX","scaleY","translateX","translateY","SUPPORTED_TRANSFORMS","rotate","rotateX","rotateY","rotateZ","perspective","SUPPORTED_INTERPOLATION_PARAMS","inputRange","outputRange","extrapolate","extrapolateRight","extrapolateLeft","isSupportedStyleProp","prop","isSupportedTransformProp","isSupportedInterpolationParam","param","generateNewAnimationId","_warnedMissingNativeAnimated","shouldUseNativeDriver","useNativeDriver","isSupportedColorStyleProp","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","validateStyles","validateTransform","configs","property","validateInterpolation","generateNewNodeTag","assertNativeAnimatedModule","transformDataType","PI","NativeAnimatedAPI","NativeAnimatedHelper","_uniqueId","AnimatedNode","_listeners","__isNative","__nativeTag","__getValue","child","platformConfig","_platformConfig","hasListeners","_startListeningToNativeValueUpdates","_stopListeningForNativeValueUpdates","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","__getNativeTag","__onAnimatedValueUpdateReceived","__callListeners","_this$__nativeTag","nativeTag","__getNativeConfig","_getPrototypeOf","_possibleConstructorReturn","_AnimatedNode","AnimatedWithChildren","_children","_step","_iterator","_createForOfIteratorHelperLoose","done","__makeNative","__attach","__getPlatformConfig","__detach","_step2","_iterator2","__DEV__","linear","createInterpolation","colorToRgba","arr","pattern","stringShapeRegex","checkPattern","outputRanges","number","interpolations","shouldRound","range","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","easing","findRange","inputMin","inputMax","outputMin","outputMax","interpolate","normalizedColor","normalizeColor","AnimatedInterpolation","_AnimatedWithChildren","parent","_parent","_config","_interpolation","parentValue","__addChild","__removeChild","__transformDataType","__createInterpolation","AnimatedValue","_startingValue","_offset","_animation","stopTracking","handle","__isInteraction","InteractionManager","createInteractionHandle","previousAnimation","clearInteractionHandle","_tracking","tracking","update","flush","rootNode","animatedStyles","findAnimatedStyles","node","__getChildren","animatedStyle","_flush","attachNativeEvent","viewRef","argMapping","eventMappings","traverse","path","nativeEventPath","animatedValueTag","mapping","detach","AnimatedEvent","_argMapping","__addListener","_callListeners","_attachedEvent","recMapping","recEvt","mappingKey","_key4","AnimatedTransform","transforms","_transforms","__getAnimatedValue","transConfigs","flattenStyle","createAnimatedStyle","AnimatedStyle","_inputStyle","_style","updatedStyle","_walkStyleAndGetValues","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","AnimatedProps","_props","_callback","__getHandler","_animatedView","__disconnectAnimatedView","__connectAnimatedView","animatedView","nativeViewTag","propsConfig","propKey","useAnimatedProps","scheduleUpdate","useReducer","count","onUpdateRef","prevNodeRef","isUnmountingRef","prevNode","__restoreDefaultValues","useAnimatedPropsLifecycle","callbackRef","effect","cleanupRef","instance","useRefEffect","setNativeView","getScrollableNode","getEventTarget","events","propName","propValue","_i","_events","_events$_i","_propName","reduceAnimatedProps","collapsable","createAnimatedComponent","Component","_useAnimatedProps","reducedProps","refs","_refs","useMergeRefs","passthroughAnimatedPropExplicitValues","passthroughStyle","passthroughProps","mergedStyle","scrollEventThrottle","ScrollView","SectionList","AnimatedAddition","_a","_b","AnimatedDiffClamp","_min","_max","_lastValue","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","animationClass","animationConfig","_animationClass","_animationConfig","_useNativeDriver","animate","toValue","__getNativeAnimationConfig","AnimatedValueXY","valueIn","setOffset","flattenOffset","extractOffset","resetAnimation","jointCallback","removeListener","startNativeAnimationNextId","Animation","fromValue","onUpdate","onEnd","animatedValue","__nativeId","__onEnd","startNativeAnimationWaitId","__debouncedOnEnd","_Animation","DecayAnimation","_config$deceleration","_config$isInteraction","_config$iterations","_deceleration","deceleration","_velocity","velocity","isInteraction","__iterations","iterations","__active","_fromValue","_onUpdate","_startTime","__startNativeAnimation","_animationFrame","requestAnimationFrame","exp","abs","finished","global","cancelAnimationFrame","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","fromOrigamiTensionAndFriction","tension","friction","stiffness","damping","fromBouncinessAndSpeed","bounciness","speed","startValue","endValue","projectNormal","end","bouncyTension","bouncyFriction","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","SpringAnimation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$stiffness","_config$damping","_config$mass","_overshootClamping","overshootClamping","_restDisplacementThreshold","restDisplacementThreshold","_restSpeedThreshold","restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","_delay","delay","mass","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","_config$tension","_config$friction","_springConfig","_this$_initialVelocit","initialVelocity","_startPosition","_lastPosition","_lastTime","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","lastTime","_timeout","deltaTime","m","k","v0","zeta","sqrt","omega0","omega1","x0","envelope","sin","cos","_envelope","isOvershooting","isVelocity","isDisplacement","_easeInOut","TimingAnimation","_config$easing","_config$duration","_easing","Easing","inOut","ease","_duration","frames","numFrames","frame","defaultColor","g","processColor","isRgbaValue","AnimatedColor","isRgbaAnimatedValue","rgbaAnimatedValue","_processColor","processedColor","initColor","nativeColor","_processColor2","shouldUpdateNodeConfig","rgbaValue","_nativeTag","_combineCallbacks","onComplete","maybeVectorAnim","anim","configX","configY","_config$key","aX","aY","parallel","stopTogether","configR","configG","configB","configA","_config$_key","aR","aG","aB","aA","timing","_start2","configuration","singleValue","singleConfig","reset","_startNativeLoop","_isUsingNativeDriver","sequence","animations","doneCount","hasEnded","cb","endResult","time","ValueXY","Color","Interpolation","Node","decay","_start3","spring","_start","modulo","diffClamp","stagger","_temp","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","animatedEvent","forkEvent","unforkEvent","__removeListener","Event","inAnimationCallback","mockAnimationStart","guardedCallback","emptyAnimation","mockCompositeAnimation","anyValue","AnimatedImplementation","isTesting","AnimatedMock","dimensions","fontScale","shouldInit","canUseDOM","win","visualViewport","docEl","documentElement","clientHeight","clientWidth","devicePixelRatio","handleResize","handler","dimension","initialDimensions","_handler","NEWTON_ITERATIONS","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSampleStepSize","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","bezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","_aGuessT","aGuessT","currentSlope","newtonRaphsonIterate","_aA","_aB","currentX","currentT","binarySubdivide","_t","_t2","t2","x1","y1","x2","y2","_bezier","deepDiffer","one","two","maxDepth","len","ii","twoKey","safeIsNaN","isNaN","areInputsEqual","newInputs","lastInputs","first","second","numColumnsOrDefault","numColumns","_React$PureComponent","_virtualizedListPairs","_captureRef","_listRef","_getItem","ret","kk","itemIndex","_getItemCount","isArrayLike","_keyExtractor","_this$props$keyExtrac","defaultKeyExtractor","_renderer","ListItemComponent","columnWrapperStyle","extraData","cols","render","renderProp","info","_item2","it","separators","_memoizedRenderer","resultFn","isEqual","memoized","newArgs","lastThis","lastArgs","lastResult","memoizeOne","_checkProps","viewabilityConfigCallbackPairs","pair","viewabilityConfig","onViewableItemsChanged","_createOnViewableItemsChanged","scrollToEnd","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getScrollRef","prevProps","getItemCount","horizontal","v","_this$props$keyExtrac2","changed","viewableItems","_pushMultiColumnViewable","removeClippedSubviews","_this$props","_removeClippedSubviews","_this$props$strictMod","strictMode","restProps","renderer","VirtualizedList","allowRTL","forceRTL","getConstants","dataUriPattern","ImageUriCache","_entries","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","entry","requests","ImageLoader","abort","requestId","getSize","success","failure","complete","interval","setInterval","clearInterval","onLoad","onError","onDecode","decode","prefetch","queryCache","uris","u","LOADED","LOADING","_filterId","svgDataUriPattern","resolveAssetUri","preferredScale","reduce","prev","curr","prefix","_ariaLabel","blurRadius","defaultSource","draggable","onLoadEnd","onLoadStart","rest","ariaLabel","updateState","updateLayout","hasTextAncestor","TextAncestorContext","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_extractNonStandardSt","filterId","tintColorProp","flatStyle","resizeMode","warnOnce","filters","_filter","shadowString","createBoxShadowValue","extractNonStandardStyleProps","_resizeMode","_tintColor","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","alt","accessibilityImage$raw","abortPendingRequest","_layout","root","inline","undo","boxShadow","resizeModeStyles","suppressHydrationWarning","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","overlayColor","absoluteFillObject","backgroundPosition","backgroundRepeat","center","contain","cover","none","repeat","stretch","TaskQueue","onMoreTasks","_onMoreTasks","_queueStack","tasks","popable","task","_getCurrentQueue","enqueue","tasksToCancel","shift","gen","_genPromise","run","stackIdx","stackItem","hasTasksToProcess","ex","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","_emitter","Events","interactionStart","interactionComplete","runAfterInteractions","promise","_scheduleUpdate","_taskQueue","enqueueTasks","cancel","cancelTasks","_inc","_addInteractionSet","_deleteInteractionSet","setDeadline","deadline","_deadline","_interactionSet","_nextUpdateHandle","_processUpdate","interactionCount","nextInteractionCount","begin","processNext","isVisible","dismissKeyboard","elementRef","ReactDOM","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","hidden","right","animatedIn","ANIMATION_DURATION","animatedOut","fadeIn","fadeOut","slideIn","slideOut","onDismiss","onShow","isRendering","setIsRendering","wasVisible","wasRendering","isAnimated","animationEndCallback","currentTarget","onAnimationEnd","ModalContent","active","closeOnEscape","stopPropagation","modal","modalTransparent","modalOpaque","FocusBracket","tabIndex","focusBracket","attemptFocus","focus","activeElement","focusFirstDescendant","childNodes","focusLastDescendant","trapElementRef","focusRef","trapFocusInProgress","lastFocusedElement","trapFocus","hasFocused","UIManager","lastFocusedElementOutsideTrap","outlineStyle","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","_props$visible","isActive","setIsActive","onDismissCallback","onShowCallback","addActiveModal","ModalPortal","ModalAnimation","ModalFocusTrap","layoutSize","ratio","emptyFunction","canUsePassiveEvents","supported","supportsPassiveEvents","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","opts","getOptions","compatListener","persist","previousModality","previousActiveModality","activeModality","modality","isEmulatingMouseEvents","KEYBOARD","MOUSE","TOUCH","CONTEXTMENU","MOUSEDOWN","MOUSEMOVE","MOUSEUP","POINTERDOWN","POINTERMOVE","SCROLL","SELECTIONCHANGE","TOUCHCANCEL","TOUCHMOVE","TOUCHSTART","bubbleOptions","passive","captureOptions","restoreModality","callListeners","onPointerish","eventType","PointerEvent","pointerType","touches","metaKey","altKey","ctrlKey","visibilityState","useEvent","targetListeners","useStable","removeTargetListener","emptyObject","lockEventType","unlockEventType","supportsPointerEvent","dispatchCustomEvent","payload","createEvent","_ref$bubbles","bubbles","_ref$cancelable","cancelable","detail","initCustomEvent","getPointerType","useForceableState","forced","cursor","touchAction","MemoedPressable","memo","delayLongPress","delayPressIn","delayPressOut","onContextMenu","onHoverIn","onHoverOut","onKeyDown","onLongPress","onPressMove","onPressIn","onPressOut","testOnly_hovered","testOnly_pressed","_useForceableState","hovered","setHovered","_useForceableState2","focused","setFocused","_useForceableState3","pressed","setPressed","hostRef","setRef","pressConfig","delayPressStart","delayPressEnd","onPressChange","onPressStart","onPressEnd","pressEventHandlers","usePressEvents","onContextMenuPress","onKeyDownPress","targetRef","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","clientX","clientY","hoverStart","lockEvent","useHover","_tabIndex","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","colors","enabled","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","titleColor","normalizeScrollEvent","contentOffset","scrollLeft","scrollTop","contentSize","scrollHeight","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","ScrollViewBase","onScroll","onTouchMove","onWheel","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","showsHorizontalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","scrollbarWidth","_React$Component","_scrollNodeRef","_innerViewRef","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","onTouchEnd","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","TextInputState","currentlyFocusedField","onScrollResponderKeyboardDismissed","blurTextInput","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","onTouchStart","scrollResponderHandleTouchMove","scrollResponderScrollTo","scroll","behavior","scrollResponderZoomTo","rect","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","measureLayout","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","screenY","scrollOffsetY","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","scrollResponderKeyboardDidHide","scrollResponderFlashScrollIndicators","getInnerViewRef","getNativeScrollRef","scrollTo","scrollResponderNode","_handleContentOnLayout","_e$nativeEvent$layout","onContentSizeChange","_handleScroll","keyboardDismissMode","_setInnerViewRef","_setScrollNodeRef","mergeRefs","warning","contentContainerStyle","refreshControl","stickyHeaderIndices","pagingEnabled","centerContent","contentSizeChangeProps","hasStickyHeaderIndices","isSticky","stickyHeader","pagingEnabledChild","contentContainer","contentContainerHorizontal","contentContainerCenterContent","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","scrollResponderHandleStartShouldSetResponder","onStartShouldSetResponderCapture","onScrollShouldSetResponder","onResponderTerminate","scrollResponderHandleTerminate","onResponderReject","scrollResponderHandleResponderReject","ScrollViewClass","scrollView","commonStyle","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","ItemWithSeparator","LeadingSeparatorComponent","SeparatorComponent","cellKey","prevCellKey","setSelfHighlightCallback","updateHighlightFor","setSelfUpdatePropsCallback","updatePropsFor","section","leadingSeparatorHiglighted","setLeadingSeparatorHighlighted","separatorHighlighted","setSeparatorHighlighted","_React$useState3","leadingItem","leadingSection","trailingItem","trailingSection","leadingSeparatorProps","setLeadingSeparatorProps","_React$useState4","separatorProps","setSeparatorProps","highlight","unhighlight","updateProps","newProps","leadingSeparator","highlighted","separator","VirtualizedSectionList","_subExtractor","_convertViewable","viewable","_info$index","keyExtractorWithNullableIndex","keyExtractorWithNonNullableIndex","_onViewableItemsChanged","listItemCount","infoIndex","header","renderSectionHeader","renderSectionFooter","_getSeparatorComponent","SectionSeparatorComponent","_setUpdateHighlightFor","_setUpdatePropsFor","_updateHighlightFor","_updatePropsFor","_updatePropsMap","updateHighlight","_updateHighlightMap","updateHighlightFn","updatePropsFn","sectionIndex","sections","viewOffset","stickySectionHeadersEnabled","__getFrameMetricsApprox","toIndexParams","passThroughProps","ItemSeparatorComponent","listHeaderOffset","ListHeaderComponent","itemCount","itemIdx","sectionData","_this$props2","isLastItemInList","isLastItemInSection","_wrapperListRef","scrollToLocation","listRef","getListRef","_stickySectionHeadersEnabled","setBackgroundColor","setBarStyle","setHidden","setNetworkActivityIndicatorVisible","setTranslucent","isWebColor","colorInt","unitlessNumbers","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexOrder","flexPositive","flexNegative","fontWeight","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","scaleZ","prefixes","charAt","toUpperCase","prefixKey","colorProps","textDecorationColor","textShadowColor","normalizeValueWithProperty","returnValue","createCSSStyleSheet","textContent","ShadowRoot","insertBefore","firstChild","slice","createOrderedCSSStyleSheet","group","groups","selectors","cssRule","selectorText","groupPattern","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","getTextContent","marker","sort","unshift","insert","groupValue","markerRule","encodeGroupRule","selectorPattern","selector","defaultId","roots","sheets","initialRules","createSheet","getRootNode","initialSheet","supportsCSS3TextDecoration","CSS","supports","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","borderBlockColor","borderInlineColor","borderStyle","borderBlockStyle","borderInlineStyle","borderBlockWidth","borderInlineWidth","insetBlock","insetInline","marginBlock","marginInline","paddingBlock","paddingInline","overscrollBehavior","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderEndStartRadius","borderEndEndRadius","borderStartStartRadius","borderStartEndRadius","insetBlockEnd","insetBlockStart","marginBlockStart","marginBlockEnd","paddingBlockStart","paddingBlockEnd","isInline","resolvedStyle","_loop","backgroundClip","WebkitBackgroundClip","stack","textDecorationLine","textDecoration","direction","longFormProperties","marginTop","paddingLeft","paddingRight","longForm","seed","h","murmurhash2_32_gc","uppercasePattern","msPattern","toHyphenLower","hName","w","wms","plugins","crossFade","imageSet","logical","sizing","transition","prefixMap","appearance","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","breakAfter","breakBefore","breakInside","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","backdropFilter","hyphens","flowInto","flowFrom","regionFragment","textOrientation","fontKerning","textSizeAdjust","createPrefixer","staticData","classicGroup","atomicGroup","customGroup","inset","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","insetInlineEnd","insetInlineStart","marginInlineStart","marginInlineEnd","paddingInlineStart","paddingInlineEnd","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","PROPERTIES_FLIP","_PROPERTIES_FLIP","PROPERTIES_I18N","PROPERTIES_VALUE","atomic","compiledStyle","$$css","compiledRules","atomicCompile","srcProp","identifier","valueString","normalizedValue","stringifyValueWithProperty","cacheKey","cachedResult","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","animationName","_block","finalValue","_block2","_block3","_block4","_block5","_block6","createAtomicRules","orderedRules","localizeableValue","_left","_right","propPolyfill","ltr","rtl","polyfillIndices","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","_ltr","_rtl","domStyle","prefixStyles","createReactDOMStyle","hyphenateStyleName","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","staticStyleMap","defaultPreprocessOptions","shadow","textShadow","insertRules","compiledOrderedRules","compileAndInsertReset","_classic","_processKeyframesValu","classic","absoluteFill","compiledStyles","styleObj","_atomic","preprocess","compileAndInsertAtomic","styleProps","preprocessOptions","styleq","factory","localizeStyle","customStyleq","originalStyle","frozenProps","nextStyle","originalValue","originalProp","originalValues","valuePolyfill","style1","style2","flatArray","flat","getSheet","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","defaultOffset","offsetX","offsetY","createTextShadowValue","textShadowOffset","textShadowRadius","radius","mapTransform","createTransformValue","PROPERTIES_STANDARD","borderEndStyle","borderEndWidth","borderStartStyle","borderStartWidth","marginEnd","marginHorizontal","marginStart","paddingEnd","paddingStart","paddingVertical","ignoredProps","boxShadowValue","textShadowValue","_value2","verticalAlign","CSS_UNIT_RE","multiple","isFinite","thumbDefaultBoxShadow","thumbFocusedBoxShadow","defaultDisabledTrackColor","defaultDisabledThumbColor","Switch","activeThumbColor","activeTrackColor","_props$disabled","thumbColor","trackColor","_props$value","thumbRef","handleFocusState","_StyleSheet$flatten","styleHeight","styleWidth","minWidth","multiplyStyleLengthValue","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","cursorDefault","disabledTrackColor","disabledThumbColor","thumb","thumbActive","nativeControl","checked","cursorInherit","forcedColorAdjust","transitionDuration","setSelection","selection","selectionEnd","selectionStart","isSelectionStale","setSelectionRange","forwardPropsList","forwardedProps","autoCapitalize","autoComplete","autoFocus","lang","maxLength","readOnly","rows","spellCheck","focusTimeout","_inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","caretHidden","clearTextOnFocus","dir","editable","enterKeyHint","inputMode","keyboardType","_props$multiline","multiline","numberOfLines","onKeyPress","onMoveShouldSetResponderCapture","onResponderEnd","onResponderStart","onScrollShouldSetResponderCapture","onSelectionChange","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onSubmitEditing","_props$readOnly","returnKeyType","_props$secureTextEntr","secureTextEntry","selectTextOnFocus","showSoftInputOnFocus","prevSelection","prevSecureTextEntry","handleContentSizeChange","hostNode","newHeight","newWidth","imperativeRef","isFocused","_currentlyFocusedNode","component","useElementLayout","useResponderEvents","contextDirection","useLocaleContext","supportedProps","pick","pickProps","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","shiftKey","preventDefault","blur","_e$target","_selection","textinput$raw","virtualkeyboardpolicy","platformMethodsRef","usePlatformMethods","langDirection","getLocaleDirection","State","MozAppearance","WebkitAppearance","border","boxSizing","resize","caretColor","createContext","hrefAttrs","onClick","selectable","handleClick","componentDirection","WebkitLineClamp","textHasAncestor$raw","text$raw","textOneLine","textMultiLine","notSelectable","pressable","download","Provider","textStyle","listStyle","whiteSpace","wordWrap","maxWidth","textOverflow","WebkitBoxOrient","createExtraStyles","activeOpacity","underlay","hasPressHandler","actionable","MemoedTouchableHighlight","focusable","onHideUnderlay","onShowUnderlay","rejectResponderTermination","extraStyles","setExtraStyles","showUnderlay","hideUnderlay","only","accessibilityDisabled","transitionProperty","MemoedTouchableOpacity","setDuration","opacityOverride","setOpacityOverride","setOpacityTo","setOpacityActive","setOpacityInactive","isGrant","dispatchConfig","registrationName","accessibilityLiveRegion","accessibilityValue","nativeID","MemoedTouchableWithoutFeedback","elementProps","isCustomProperty","isUnitlessNumber","styleName","styleValue","dangerousStyleValue","setProperty","getRect","offsetLeft","offsetTop","offsetParent","nodeType","clientLeft","clientTop","scrollY","scrollX","relativeToNativeNode","relativeNode","parentNode","isConnected","relativeRect","_getRect","elementsToIgnore","BODY","INPUT","SELECT","TEXTAREA","nodeName","getAttribute","isContentEditable","measure","_getBoundingClientRec","onFail","onSuccess","updateView","setValueForStyles","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","view$raw","processIDRefList","idRefList","pointerEventsStyles","auto","elementType","ariaActiveDescendant","accessibilityActiveDescendant","ariaAtomic","accessibilityAtomic","ariaAutoComplete","accessibilityAutoComplete","ariaBusy","accessibilityBusy","ariaChecked","accessibilityChecked","ariaColumnCount","accessibilityColumnCount","ariaColumnIndex","accessibilityColumnIndex","ariaColumnSpan","accessibilityColumnSpan","ariaControls","accessibilityControls","ariaCurrent","accessibilityCurrent","ariaDescribedBy","accessibilityDescribedBy","ariaDetails","accessibilityDetails","ariaDisabled","ariaErrorMessage","accessibilityErrorMessage","ariaExpanded","accessibilityExpanded","ariaFlowTo","accessibilityFlowTo","ariaHasPopup","accessibilityHasPopup","ariaHidden","accessibilityHidden","ariaInvalid","accessibilityInvalid","ariaKeyShortcuts","accessibilityKeyShortcuts","ariaLabelledBy","accessibilityLabelledBy","ariaLevel","accessibilityLevel","ariaLive","ariaModal","accessibilityModal","ariaMultiline","accessibilityMultiline","ariaMultiSelectable","accessibilityMultiSelectable","ariaOrientation","accessibilityOrientation","ariaOwns","accessibilityOwns","ariaPlaceholder","accessibilityPlaceholder","ariaPosInSet","accessibilityPosInSet","ariaPressed","accessibilityPressed","ariaReadOnly","accessibilityReadOnly","ariaRequired","accessibilityRequired","ariaRoleDescription","accessibilityRoleDescription","ariaRowCount","accessibilityRowCount","ariaRowIndex","accessibilityRowIndex","ariaRowSpan","accessibilityRowSpan","ariaSelected","accessibilitySelected","ariaSetSize","accessibilitySetSize","ariaSort","accessibilitySort","ariaValueMax","accessibilityValueMax","ariaValueMin","accessibilityValueMin","ariaValueNow","accessibilityValueNow","ariaValueText","accessibilityValueText","dataSet","domProps","AccessibilityUtil","propsToAriaRole","_ariaActiveDescendant","_ariaAtomic","_ariaAutoComplete","_ariaBusy","_ariaChecked","_ariaColumnCount","_ariaColumnIndex","_ariaColumnSpan","_ariaControls","_ariaCurrent","_ariaDescribedBy","_ariaDetails","_ariaErrorMessage","_ariaExpanded","_ariaFlowTo","_ariaHasPopup","_ariaHidden","_ariaInvalid","_ariaKeyShortcuts","_ariaLabelledBy","_ariaLevel","_ariaLive","_ariaModal","_ariaMultiline","_ariaMultiSelectable","_ariaOrientation","_ariaOwns","_ariaPlaceholder","_ariaPosInSet","_ariaPressed","_ariaReadOnly","_ariaRequired","required","_ariaRoleDescription","_ariaRowCount","_ariaRowIndex","_ariaRowSpan","_ariaSelected","_ariaSetSize","_ariaSort","_ariaValueMax","_ariaValueMin","_ariaValueNow","_ariaValueText","dataProp","dataName","dataValue","_StyleSheet","className","inlineStyle","_id","accessibilityComponent","propsToAccessibilityComponent","createDOMProps","LocaleProvider","locale","int32Color","useWindowDimensions","dims","setDims","handleChange","unmountComponentAtNode","hydrate","domHydrateRoot","reactRoot","domCreateRoot","hydrateLegacy","domLegacyHydrate","unmount","renderLegacy","domLegacyRender","isScreenReaderEnabled","prefersReducedMotionMedia","matchMedia","handlers","AccessibilityInfo","isReduceMotionEnabled","matches","fetch","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","Alert","listenerMapping","getColorScheme","addChangeListener","mappedListener","colorScheme","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","appKey","appParameters","getApplication","componentProvider","RootComponent","initialProps","dangerouslySetInnerHTML","__html","shouldHydrate","renderFn","renderApplication","registerRunnable","registerComponent","hook","provider","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","changeEmitter","AppState","isAvailable","currentState","exitApp","clipboardAvailable","Clipboard","queryCommandSupported","getSelection","removeAllRanges","createRange","selectNodeContents","addRange","execCommand","configureNext","Presets","easeInEaseOut","springDamping","Types","freeze","easeIn","easeOut","keyboard","Properties","scaleXY","checkConfig","initialURL","location","Linking","_eventCallbacks","filteredCallbacks","_dispatchEvent","urlToOpen","TouchHistoryMath","centroidDimension","touchHistory","touchesChangedAfter","isXAxis","ofCurrent","touchBank","total","oneTouchData","numberActiveTouches","indexOfSingleActiveTouch","touchActive","currentTimeStamp","currentPageX","currentPageY","previousPageX","previousPageY","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","y0","dx","dy","vx","vy","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","dt","mostRecentTimeStamp","shouldCancelClick","timeout","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","onClickCapture","getInteractionHandle","Share","content","share","vibrate","Button","button","buttonDisabled","textDisabled","textTransform","CheckBox","fakeControl","fakeControlChecked","fakeControlDisabled","fakeControlCheckedAndDisabled","ImageBackground","imageRef","KeyboardAvoidingView","keyboardFrame","keyboardY","keyboardVerticalOffset","Picker","selectedValue","itemStyle","prompt","selectedIndex","initial","Item","ProgressBar","_props$indeterminate","indeterminate","_props$progress","progress","_props$trackColor","percentageProgress","cssFunction","SafeAreaView","twoArgumentPooler","a1","a2","Klass","instancePool","standardReleaser","destructor","poolSize","DEFAULT_POOLER","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","release","PooledClass","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","changedTouches","hasTouches","hasChangedTouches","States","baseStatesConditions","NOT_RESPONDER","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","ERROR","IsActive","IsPressingIn","IsLongPressingIn","Signals","Transitions","DELAY","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","LONG_PRESS_DETECTED","TouchableMixin","componentDidMount","touchableNode","getTouchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchable","touchState","touchableHandleResponderTerminate","componentWillUnmount","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","_receiveSignal","delayMS","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","hitSlop","touchableGetHitSlop","touch","_getDistanceBetweenPoints","_cancelLongPressDelayTimeout","prevState","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","curState","signal","nextState","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","locationX","locationY","bX","bY","deltaX","deltaY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","Touchable","Mixin","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","UnimplementedView","unimplementedViewStyles","YellowBox","ignoreWarnings","ignoreLogs","ignoreAllLogs","uninstall","install","useColorScheme","Appearance","setColorScheme","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","link","summary","_role","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","main","navigation","paragraph","region","strong","isDisabled","accessibilityStates","level","focusTextInput","textFieldNode","accessibilityProps","clickProps","onAuxClick","onGotPointerCapture","onLostPointerCapture","onPointerCancel","onPointerDown","onPointerEnter","onPointerMove","onPointerLeave","onPointerOut","onPointerOver","onPointerUp","focusProps","keyboardProps","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEndCapture","onTouchMoveCapture","onTouchStartCapture","nextObj","DOM_LAYOUT_HANDLER_NAME","resizeObserver","observer","ResizeObserver","observe","unobserve","rtlScripts","rtlLangs","LocaleContext","cachedRTL","Intl","Locale","script","maximize","isLocaleRTL","useContext","relativeToNode","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","getElementRole","getElementType","tagName","isActiveSignal","isButtonRole","isPressStartSignal","isValidKeyPress","isSpacebar","isButtonish","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","_responderElement","configure","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","_createEventHandlers","shouldDelay","_selectionTerminated","normalizeDelay","_handleLongPress","keyupHandler","isNativeInteractiveElement","isActiveElement","isSpacebarKey","getTouchFromResponderEvent","_touchActivatePosition","hypot","_this$_config","_this$_config2","_this$_config3","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","_this$_config6","fallback","_event$nativeEvent","pressResponderRef","pressResponder","useDebugValue","getEventHandlers","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","responderTouchHistoryStore","propagationWasStopped","domEventChangedTouches","domEventType","force","timestamp","normalizeTouches","emulatedTouches","responderEvent","eventPhase","isTrusted","MOUSE_DOWN","MOUSE_MOVE","MOUSE_UP","MOUSE_CANCEL","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","SELECTION_CHANGE","isStartish","isMoveish","isEndish","isCancelish","keyName","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","anchorNode","composedPath","getEventPath","hasValidSelection","string","focusNode","isTextNode","TEXT_NODE","isSelectionValid","MAX_TOUCH_BANK","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","startPageX","startPageY","startTimeStamp","previousTimeStamp","resetTouchRecord","createTouchRecord","printTouch","printTouchBank","printed","ResponderTouchHistoryStore","_touchHistory","topLevelType","recordTouchMove","recordTouchEnd","touchTrackToCheck","activeRecord","startRegistration","moveRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","emptyResponder","responderListenersMap","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","buttons","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","recordTouchTrack","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","callbackName","shouldSetCallback","_id2","_node2","findWantsResponder","_currentResponder2","currentId","currentNode","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","relatedTarget","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","addNode","setResponderId","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","isResponder","UNINITIALIZED","Symbol","context","_this$_nativeModule","RCTDeviceEventEmitter","_this$_nativeModule2","_this$_nativeModule3","_this$_nativeModule4","elementsThatOverlapOffsets","offsets","getFrameMetrics","zoomScale","offsetIndex","currentOffset","mid","scaledOffsetStart","scaledOffsetEnd","newRangeCount","next","last","computeWindowedRenderLimits","maxToRenderPerBatch","windowSize","getFrameMetricsApprox","scrollMetrics","visibleLength","_scrollMetrics$zoomSc","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","Batchinator","_taskHandle","timeoutHandle","_console","log","CellRenderMask","numCells","_numCells","_regions","isSpacer","cells","_this$_regions","_this$_findRegion","_findRegion","firstIntersect","firstIntersectIdx","_this$_findRegion2","lastIntersect","lastIntersectIdx","newLeadRegion","newTailRegion","newMainRegion","replacementRegions","numRegionsToDelete","cellIdx","firstIdx","lastIdx","middleIdx","middleRegion","ChildListCollection","_cellKeyToChildren","_childrenToCellKey","_this$_cellKeyToChild","cellLists","listSet","_this$_cellKeyToChild2","_step3","_iterator3","_this$_cellKeyToChild3","_step4","_iterator4","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","FillRateHelper","_anyBlankStartTime","_info","_mostlyBlankStartTime","_samplesStartTime","_getFrameMetrics","_resetData","performance","cellsAroundViewport","dOffset","scrollSpeed","blankTop","firstFrame","inLayout","blankBottom","lastFrame","bottomEdge","blankness","deactivateAndFlush","minSampleCount","StateSafePureComponent","_inAsyncStateUpdate","_installSetStateHooks","partialState","that","newState","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","scrollOffset","renderRange","itemVisiblePercentThreshold","viewableIndices","firstVisible","metrics","createViewToken","waitForInteraction","computeViewableItems","minimumViewTime","_onUpdateSync","viewableIndicesToCheck","prevItems","nextItems","_step$value","_step2$value","_viewable","isViewable","VirtualizedListContext","VirtualizedListContextProvider","getScrollMetrics","getOutermostParentListRef","registerAsNestedChild","unregisterAsNestedChild","VirtualizedListCellContextProvider","currContext","CellRenderer","_separators","onUpdateSeparators","_this$props3","_onLayout","onCellLayout","setState","onUnmount","_this$props4","CellRendererComponent","inversionStyle","onCellFocusCapture","_renderElement","itemSeparator","cellStyle","rowReverse","columnReverse","onFocusCapture","_usedIndexForKey","_keylessItemComponentName","horizontalOrDefault","maxToRenderPerBatchOrDefault","onEndReachedThresholdOrDefault","onEndReachedThreshold","getScrollingThreshold","threshold","windowSizeOrDefault","_StateSafePureCompone","_this$props$updateCel","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","_registerAsNestedChild","childList","_nestedChildLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_getSpacerKey","isVertical","_averageCellLength","_frames","_footerLength","_hasTriggeredInitialScrollToIndex","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_lastFocusedCellKey","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","_scrollRef","_sentStartForContentLength","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","_props$refreshing","RefreshControl","_onCellLayout","_selectOffset","_selectLength","_scheduleCellsToRenderUpdate","_triggerRemeasureForChildListsInCell","_computeBlankness","_updateViewableItems","_onCellUnmount","measureLayoutRelativeToContainingList","_maybeCallOnEdgeReached","_onLayoutEmpty","_onLayoutFooter","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","nullthrows","_convertParentScrollMetrics","_onScroll","_this$_convertParentS","perf","infoLog","prevDt","_fillRateHelper","activate","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_adjustCellsAroundViewport","renderMask","_createRenderMask","_getNonViewportRenderRegions","equals","_createViewToken","_getOffsetApprox","isInteger","frameMetrics","remainder","getItemLayout","focusedCellIndex","heightOfCellsBeforeFocused","heightOfCellsAfterFocused","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","initialRenderRegion","_initialRenderRegion","invertedWheelEventHandler","ev","scrollLength","clientLength","isEventTargetScrollable","delta","wheelDeltaX","wheelDeltaY","leftoverDelta","targetDelta","nextScrollLeft","nextScrollTop","veryLast","viewPosition","averageItemLength","highestMeasuredFrameIndex","_this$context","newCellsAroundViewport","_this$_scrollMetrics","distanceFromEnd","_constrainToItemCount","disableVirtualization","renderAhead","EPSILON","childIdx","_findFirstChildWithMore","cellKeyForIndex","anyInCell","hasMore","setupWebWheelHandler","dispose","teardownWebWheelHandler","stickyIndicesFromProps","debug","stickyOffset","shouldListenForLayout","_onCellFocusCapture","nestedContext","_this$props5","ListEmptyComponent","ListFooterComponent","_this$props6","horizontallyInverted","verticallyInverted","_element","_getCellKey","ListHeaderComponentStyle","_element2","spacerKey","renderRegions","enumerateRegions","lastSpacer","predicate","findLastWhere","clamp","firstMetrics","lastMetrics","spacerSize","_pushCells","_element3","ListFooterComponentStyle","scrollProps","invertStickyHeaders","renderScrollComponent","_renderDebugOverlay","_this$props7","resetViewableIndices","hiPriInProgress","computeBlankness","forEachInCell","_this5","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props8","onStartReached","onStartReachedThreshold","onEndReached","_this$_scrollMetrics2","distanceFromStart","isWithinStartThreshold","isWithinEndThreshold","_this$state$cellsArou","_this$_scrollMetrics3","hiPri","onStartReachedThresholdOrDefault","distTop","distBottom","schedule","_this6","additionalRegions","_i2","_allRegions","addCells","initialRegion","stickyIndicesSet","_ensureClosestStickyHeader","_props$initialScrollI","initialNumToRender","firstCellIndex","constrainedCells","contextType","_registry","registrations","registry","allocate","registration","_arr","hue2rgb","q","hslToRgb","cachedMatchers","NUMBER","PERCENTAGE","callWithSlashSeparator","commaSeparatedCall","parse255","int","parse360","parse1","num","parsePercentage","matchers","rgb","RegExp","rgba","hsl","hsla","hwb","hex3","hex4","hex6","hex8","getMatchers","exec","colorFromKeyword","normalizeKeyword","gray","red","green","blue","hwbToRgb","asn1","bignum","define","base","constants","decoders","encoders","inherits","Entity","_createNamed","named","entity","_initNamed","_getDecoder","enc","_getEncoder","encode","reporter","Reporter","Buffer","DecoderBuffer","isBuffer","EncoderBuffer","byteLength","save","restore","res","isEmpty","readUInt8","fail","skip","_reporterState","raw","out","write","copy","assert","tags","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","_wrap","stateProps","clone","cstate","method","_init","equal","_useArgs","arg","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","isError","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","some","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","inherited","elem","partial","captureStackTrace","tagClass","tagClassByName","_reverse","tagByName","der","DERDecoder","tree","DERNode","derDecodeTag","oct","tagStr","derDecodeLen","buffer","decodedTag","_skipUntilEnd","decoder","possibleEnd","unused","fromCharCode","readUInt16BE","numstr","printstr","relative","identifiers","ident","subident","tmp","year","mon","day","hour","sec","UTC","pem","PEMDecoder","lines","re","DEREncoder","encodedTag","encodeTag","lenOctets","writeUInt16BE","objid","date","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","toArray","sign","dataBuffer","defaultBuffer","PEMEncoder","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","Uint8Array","output","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","mul","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","mod","word","imuln","_iaddn","dest","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","self","lo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","hi","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","sub","comb10MulTo","a0","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","D","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","nOne","lpow","inv","wnd","currentLen","mont","Rand","rand","generate","_rand","getBytes","getByte","crypto","getRandomValues","msCrypto","randomBytes","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_reset","blockSize","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","allocUnsafe","writeUInt32BE","decryptBlock","m1","scrub","aes","Transform","GHASH","incr32","StreamCipher","iv","decrypt","alloc","_cipher","ck","_ghash","_finID","ghash","toPad","ivBits","tail","writeUIntBE","calcIv","_prev","_cache","_secCache","_decrypt","_alen","_mode","_authTag","_called","_update","chunk","rump","encrypt","_final","final","xorTest","getAuthTag","setAuthTag","setAAD","ciphers","deciphers","modes","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","password","thing","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","padBuff","writeUInt8","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","bl","pad","encryptStart","encryptByte","byteParam","shiftIn","getBlock","chunkNum","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","DES","aesModes","desModes","keyLen","ivLen","CipherBase","des","instantiate","EDE","modeName","_des","des3","getr","priv","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","move","_move","for","modrn","_toArrayLikeLE","_toArrayLikeBE","isNegNum","createHash","verify","algorithms","Sign","algorithm","Writable","_hashType","_hash","_tag","_signType","Verify","createSign","createVerify","_write","digest","sig","sigBuffer","createHmac","EC","parseKeys","curves","getKey","algo","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curve","curveId","keyFromPrivate","privateKey","toDER","ecSign","priv_key","dsaSign","checkValue","pub","pubkey","subjectPrivateKey","ecVerify","pub_key","unpacked","signature","montp","dsaVerify","padNum","pna","objectKeys","Duplex","util","Readable","readable","allowHalfOpen","once","onend","_writableState","nextTick","onEndNT","highWaterMark","_readableState","destroyed","_destroy","PassThrough","_transform","encoding","ReadableState","EElistenerCount","emitter","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","BufferList","destroyImpl","kProxyEvents","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","read","_read","destroy","readableAddChunk","addToFront","skipChunkCheck","er","emitReadable","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","needMoreData","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","pipe","pipeOpts","endFn","process","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","on","pipeOnDrain","increasedAwaitDrain","prependListener","dests","wrap","_fromList","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","prefinish","err2","CorkedRequest","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","browser","WritableState","internalUtil","deprecate","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","getBuffer","hasInstance","object","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","Constructor","custom","emitErrorNT","readableDestroyed","writableDestroyed","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","isEncoding","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","ieee754","customInspectSymbol","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","actual","fromString","ArrayBuffer","isView","arrayView","isInstance","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","numberIsNaN","fromObject","toPrimitive","assertSize","array","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","_isBuffer","compare","pos","swap16","swap32","swap64","toLocaleString","thisStart","thisEnd","thisCopy","targetCopy","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","readUintBE","readUIntBE","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","leadSurrogate","base64clean","alphabet","table","i16","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","fin","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isFunction","isPrimitive","elliptic","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","ec","formatReturnValue","bn","p256","secp256r1","secp192r1","p384","p521","generateKeys","format","genKeyPair","getPublicKey","computeSecret","inenc","keyFromPublic","getPublic","getPrivate","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_priv","_importPrivate","MD5","RIPEMD160","sha","Base","Hash","alg","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","rng","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","dh","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","_typeof","iterator","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","filterUniqueArray","assignStyle","baseValue","DASH","MS","toUpper","camelCaseProperty","camelProp","hyphenateProperty","cssifyDeclaration","cssifyObject","RE","isPrefixedProperty","isPrefixedValue","unitlessProperties","lineHeight","prefixedUnitlessProperties","getPrefixedProperty","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","normalizeProperty","resolveArrayValue","unprefixValue","_hyphenateStyleName2","_hyphenateStyleName","utils","CBCState","_cbcInit","_cbcState","inp","inOff","outOff","superProto","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","EDEState","k1","k2","k3","_edeState","inL","inR","outL","outR","pc2table","sTable","permuteTable","padSplit","generatePrime","DH","ENCODINGS","generator","genc","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","_pub","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","rem","simpleSieve","fermatTest","checkPrime","__gen","_gen","secret","getPrime","front","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","eddsa","getNAF","getJSF","BaseCurve","conf","zero","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","naf","I","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","ja","jb","decodePoint","pointFromX","encodeCompressed","compact","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","dd","oneC","Point","zOne","_mulA","_mulC","rhs","lhs","pointFromY","isInfinity","fromJSON","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","zi","eqXToP","xc","short","edwards","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","_endoWnafMulAdd","npoints","ncoeffs","pre","endoMul","parse","obj2point","ys1","dyinv","_precompute","negate","zinv","zinv2","ay","pz2","z2","u1","u2","h2","h3","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","zs","PresetCurve","defineCurve","sha256","sha384","sha512","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","fromPublic","drbg","pers","persEnc","entropy","hmacStrength","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","ns1","kp","kpX","recoveryParam","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","privEnc","pubEnc","reason","derive","_importDER","place","getLength","octetLen","rmPadding","constructLength","octets","LN2","slen","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","R","Rencoded","encodePoint","s_","pubBytes","S","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","cachedProperty","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","toHex","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","ReflectOwnKeys","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","init","errorListener","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","spliceOne","rawListeners","eventNames","salt","keyBits","used","keyStart","ivStart","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","condition","argIndex","framesToPop","family","weight","E","F","fonts","J","L","vendor","O","P","race","detachEvent","common","ripemd","hmac","sha224","ripemd160","BlockHash","pending","pendingTotal","outSize","padLength","_delta8","_delta32","join32","_digest","inner","outer","rotl32","sum32","sum32_3","sum32_4","Kh","Ah","Bh","Ch","Dh","Eh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","SHA256","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","al","bh","ch","cl","dl","eh","el","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","_hmac","kmac","reseed","addEnc","temp","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_cssInJsUtils","CROSS_FADE_REGEX","grab","grabbing","FILTER_REGEX","_isPrefixedValue2","_isPrefixedValue","alternativeProps","alternativePropList","borderBlockStart","borderBlockEnd","borderInlineStart","borderInlineEnd","properties","propertyPrefixMap","outputValue","multipleValues","dashCaseProperty","_hyphenateProperty2","pLen","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","ms","addIfNew","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","_capitalizeString","metaData","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","func","thisArg","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isIndex","isTypedArray","isArr","isArg","isBuff","isType","skipIndexes","iteratee","baseAssignValue","objValue","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","isCommon","valuesLength","computed","valuesIndex","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","castPath","toKey","keysFunc","symbolsFunc","getRawTag","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","overRest","setToString","constant","baseSetToString","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","stringToPath","assignValue","isNew","coreJsData","baseRest","isIterateeCall","assigner","sources","guard","arraySome","isPartial","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","getMapData","memoize","overArg","freeExports","freeModule","freeProcess","nodeUtil","types","binding","nativeMax","otherArgs","freeSelf","shortOut","nativeNow","lastCalled","stamp","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","copyObject","createAssigner","baseDifference","isArrayLikeObject","differenceWith","baseIteratee","toInteger","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","Cache","baseProperty","basePropertyDeep","INFINITY","toFinite","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","HashBase","ARRAY16","_c","_d","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","_blockSize","_finalized","throwIfNotStringOrBuffer","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","certificate","RSAPrivateKey","seq","RSAPublicKey","AlgorithmIdentifier","null_","PublicKey","bitstr","PrivateKeyInfo","octstr","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECParameters","namedCurve","ECPrivateKey","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherText","cipherKey","cipher","match2","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kde","kdeparams","iters","keylen","parameters","ZERO_BUF","checkParameters","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","MAX_ALLOC","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","U","arg1","arg2","arg3","i2ops","mgf","withPublic","reverse","zBuffer","iHash","maskedSeed","maskedDb","db","dif","oaep","ps","pkcs1","publicKey","paddedMsg","hLen2","dblen","cur","nonZero","MAX_BYTES","MAX_UINT32","generated","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","ca","ea","fa","ha","ia","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","$$typeof","_context","_payload","Ra","Sa","Ta","Va","_valueTracker","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","ab","ownerDocument","eb","fb","defaultSelected","gb","hb","ib","kb","lb","mb","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","gridArea","gridRowSpan","gridColumnSpan","qb","sb","tb","menuitem","area","br","col","embed","hr","keygen","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","ed","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","sd","td","ud","view","vd","Ad","screenX","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","targetTouches","Xd","Yd","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","ge","he","le","datetime","email","month","tel","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","defaultView","extend","rangeCount","anchorOffset","focusOffset","setStart","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","sf","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","eventTime","lane","ih","jh","kh","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","_owner","_stringRef","th","uh","vh","wh","implementation","Fh","Gh","Hh","Ih","Jh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","pi","qi","ri","deps","si","ti","ui","vi","wi","yi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useInsertionEffect","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Wi","Xi","ReactCurrentOwner","Yi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tailMode","yj","Ej","Fj","Gj","wasMultiple","onclick","createElementNS","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","bk","dk","ek","fk","isHidden","gk","hk","jk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","isReactComponent","pendingChildren","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unstable_scheduleHydration","querySelectorAll","tl","usingClientEntryPoint","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","wl","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","sortIndex","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","Fragment","jsx","jsxs","forceUpdate","escape","_status","Children","Profiler","PureComponent","StrictMode","Suspense","cloneElement","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","createFactory","isValidElement","lazy","startTransition","unstable_act","codes","createErrorType","NodeError","_Base","subClass","superClass","getMessage","__proto__","oneOf","expected","determiner","this_len","endsWith","createReadableStreamAsyncIterator","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","emitClose","autoDestroy","updateReadableListening","consume","wState","asyncIterator","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","rState","_Object$setPrototypeO","prim","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","enumerableOnly","symbols","sym","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","protoProps","staticProps","_getString","_getBuffer","customInspect","emitErrorAndCloseNT","emitCloseNT","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","onlegacyfinish","writableEnded","readableEnded","onrequest","req","setHeader","isRequest","ERR_MISSING_ARGS","to","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","pipeline","zr","sr","_e","fn1","fn2","fn3","fn4","fn5","ar","cr","dr","tr","finalSize","_finalSize","accum","assigned","lowBits","highBits","Algorithm","Sha","_w","rotl30","ft","Sha1","rotl5","Sha256","Sha224","_f","_g","_h","maj","sigma0","sigma1","gamma0","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","EE","_isStdio","didOnEnd","cleanup","createStyleq","disableCache","disableMix","definedProperties","nextCache","possibleStyle","classNameChunk","cacheEntry","definedPropertiesChunk","weakMap","subStyle","_prop","markerProp","compiledStyleIndex","_cachedStyles","_compiledStyle","compileStyle","cachedStyles","localStorage","trace","arrayLikeToArray","objectWithoutPropertiesLoose","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","asyncGeneratorStep","_next","_throw","_objectSpread2","ReferenceError","_setPrototypeOf","toPropertyKey"],"sourceRoot":""} \ No newline at end of file