{"version":3,"file":"static/chunks/904-3b0bedc9f0996070.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@mui/base/Portal/Portal.js","webpack://_N_E/./node_modules/@mui/base/utils/appendOwnerState.js","webpack://_N_E/./node_modules/@mui/base/utils/extractEventHandlers.js","webpack://_N_E/./node_modules/@mui/base/utils/isHostComponent.js","webpack://_N_E/./node_modules/@mui/base/utils/omitEventHandlers.js","webpack://_N_E/./node_modules/@mui/base/utils/mergeSlotProps.js","webpack://_N_E/./node_modules/@mui/base/utils/resolveComponentProps.js","webpack://_N_E/./node_modules/@mui/base/utils/useSlotProps.js","webpack://_N_E/./node_modules/@mui/material/Backdrop/backdropClasses.js","webpack://_N_E/./node_modules/@mui/material/Backdrop/Backdrop.js","webpack://_N_E/./node_modules/@mui/system/esm/createBox.js","webpack://_N_E/./node_modules/@mui/material/Box/boxClasses.js","webpack://_N_E/./node_modules/@mui/material/Box/Box.js","webpack://_N_E/./node_modules/@mui/material/Button/buttonClasses.js","webpack://_N_E/./node_modules/@mui/material/Button/Button.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://_N_E/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://_N_E/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://_N_E/./node_modules/@mui/material/ButtonBase/Ripple.js","webpack://_N_E/./node_modules/@mui/material/ButtonBase/touchRippleClasses.js","webpack://_N_E/./node_modules/@mui/material/ButtonBase/TouchRipple.js","webpack://_N_E/./node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","webpack://_N_E/./node_modules/@mui/material/ButtonBase/ButtonBase.js","webpack://_N_E/./node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","webpack://_N_E/./node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","webpack://_N_E/./node_modules/@mui/material/CircularProgress/circularProgressClasses.js","webpack://_N_E/./node_modules/@mui/material/CircularProgress/CircularProgress.js","webpack://_N_E/./node_modules/@mui/material/Divider/Divider.js","webpack://_N_E/./node_modules/@mui/material/Divider/dividerClasses.js","webpack://_N_E/./node_modules/@mui/material/Fade/Fade.js","webpack://_N_E/./node_modules/@mui/material/Grow/Grow.js","webpack://_N_E/./node_modules/@mui/material/Link/linkClasses.js","webpack://_N_E/./node_modules/@mui/material/Link/getTextDecoration.js","webpack://_N_E/./node_modules/@mui/material/Link/Link.js","webpack://_N_E/./node_modules/@mui/material/List/ListContext.js","webpack://_N_E/./node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","webpack://_N_E/./node_modules/@mui/material/List/listClasses.js","webpack://_N_E/./node_modules/@mui/material/List/List.js","webpack://_N_E/./node_modules/@mui/material/utils/getScrollbarSize.js","webpack://_N_E/./node_modules/@mui/material/MenuList/MenuList.js","webpack://_N_E/./node_modules/@mui/material/Popover/popoverClasses.js","webpack://_N_E/./node_modules/@mui/material/Popover/Popover.js","webpack://_N_E/./node_modules/@mui/material/Menu/menuClasses.js","webpack://_N_E/./node_modules/@mui/material/Menu/Menu.js","webpack://_N_E/./node_modules/@mui/material/ListItemText/listItemTextClasses.js","webpack://_N_E/./node_modules/@mui/material/MenuItem/menuItemClasses.js","webpack://_N_E/./node_modules/@mui/material/MenuItem/MenuItem.js","webpack://_N_E/./node_modules/@mui/base/unstable_useModal/ModalManager.js","webpack://_N_E/./node_modules/@mui/base/unstable_useModal/useModal.js","webpack://_N_E/./node_modules/@mui/base/FocusTrap/FocusTrap.js","webpack://_N_E/./node_modules/@mui/material/Modal/modalClasses.js","webpack://_N_E/./node_modules/@mui/material/Modal/Modal.js","webpack://_N_E/./node_modules/@mui/material/styles/getOverlayAlpha.js","webpack://_N_E/./node_modules/@mui/material/Paper/paperClasses.js","webpack://_N_E/./node_modules/@mui/material/Paper/Paper.js","webpack://_N_E/./node_modules/@mui/system/esm/Stack/createStack.js","webpack://_N_E/./node_modules/@mui/material/Stack/Stack.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/math.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/enums.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/createPopper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/within.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://_N_E/./node_modules/@popperjs/core/lib/popper.js","webpack://_N_E/./node_modules/@mui/base/generateUtilityClass/index.js","webpack://_N_E/./node_modules/@mui/base/generateUtilityClasses/index.js","webpack://_N_E/./node_modules/@mui/base/Popper/popperClasses.js","webpack://_N_E/./node_modules/@mui/base/utils/ClassNameConfigurator.js","webpack://_N_E/./node_modules/@mui/base/Popper/Popper.js","webpack://_N_E/./node_modules/@mui/material/Popper/Popper.js","webpack://_N_E/./node_modules/@mui/material/Tooltip/Tooltip.js","webpack://_N_E/./node_modules/@mui/material/Tooltip/tooltipClasses.js","webpack://_N_E/./node_modules/@mui/material/Typography/typographyClasses.js","webpack://_N_E/./node_modules/@mui/material/Typography/Typography.js","webpack://_N_E/./node_modules/@mui/material/styles/rootShouldForwardProp.js","webpack://_N_E/./node_modules/@mui/material/styles/slotShouldForwardProp.js","webpack://_N_E/./node_modules/@mui/material/styles/styled.js","webpack://_N_E/./node_modules/@mui/material/styles/useTheme.js","webpack://_N_E/./node_modules/@mui/material/transitions/utils.js","webpack://_N_E/./node_modules/@mui/material/utils/capitalize.js","webpack://_N_E/./node_modules/@mui/material/SvgIcon/svgIconClasses.js","webpack://_N_E/./node_modules/@mui/material/SvgIcon/SvgIcon.js","webpack://_N_E/./node_modules/@mui/material/utils/createSvgIcon.js","webpack://_N_E/./node_modules/@mui/material/utils/debounce.js","webpack://_N_E/./node_modules/@mui/material/utils/ownerDocument.js","webpack://_N_E/./node_modules/@mui/material/utils/ownerWindow.js","webpack://_N_E/./node_modules/@mui/utils/useControlled/useControlled.js","webpack://_N_E/./node_modules/@mui/material/utils/useControlled.js","webpack://_N_E/./node_modules/@mui/material/utils/useEnhancedEffect.js","webpack://_N_E/./node_modules/@mui/material/utils/useEventCallback.js","webpack://_N_E/./node_modules/@mui/material/utils/useForkRef.js","webpack://_N_E/./node_modules/@mui/material/utils/useId.js","webpack://_N_E/./node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js","webpack://_N_E/./node_modules/@mui/material/utils/useIsFocusVisible.js","webpack://_N_E/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://_N_E/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://_N_E/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://_N_E/./node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","webpack://_N_E/./node_modules/@mui/styled-engine/index.js","webpack://_N_E/./node_modules/@mui/system/createStyled.js","webpack://_N_E/./node_modules/@mui/system/esm/createTheme/index.js","webpack://_N_E/./node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","webpack://_N_E/./node_modules/@mui/system/esm/styleFunctionSx/index.js","webpack://_N_E/./node_modules/@mui/system/esm/createStyled.js","webpack://_N_E/./node_modules/@mui/system/esm/styled.js","webpack://_N_E/./node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js","webpack://_N_E/./node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","webpack://_N_E/./node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","webpack://_N_E/./node_modules/@mui/system/useThemeWithoutDefault.js","webpack://_N_E/./node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js","webpack://_N_E/./node_modules/@mui/utils/capitalize/index.js","webpack://_N_E/./node_modules/@mui/utils/composeClasses/composeClasses.js","webpack://_N_E/./node_modules/@mui/utils/createChainedFunction/createChainedFunction.js","webpack://_N_E/./node_modules/@mui/utils/debounce/debounce.js","webpack://_N_E/./node_modules/@mui/utils/deepmerge/index.js","webpack://_N_E/./node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js","webpack://_N_E/./node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js","webpack://_N_E/./node_modules/@mui/utils/getDisplayName/getDisplayName.js","webpack://_N_E/./node_modules/@mui/utils/getDisplayName/index.js","webpack://_N_E/./node_modules/@mui/utils/getScrollbarSize/getScrollbarSize.js","webpack://_N_E/./node_modules/@mui/utils/ownerDocument/ownerDocument.js","webpack://_N_E/./node_modules/@mui/utils/ownerWindow/ownerWindow.js","webpack://_N_E/./node_modules/@mui/utils/setRef/setRef.js","webpack://_N_E/./node_modules/@mui/utils/useEnhancedEffect/useEnhancedEffect.js","webpack://_N_E/./node_modules/@mui/utils/useEventCallback/useEventCallback.js","webpack://_N_E/./node_modules/@mui/utils/useForkRef/useForkRef.js","webpack://_N_E/./node_modules/@mui/utils/useId/useId.js","webpack://_N_E/./node_modules/@mui/utils/useLazyRef/useLazyRef.js","webpack://_N_E/./node_modules/@mui/utils/useOnMount/useOnMount.js","webpack://_N_E/./node_modules/@mui/utils/useTimeout/useTimeout.js","webpack://_N_E/./node_modules/next/dist/client/get-domain-locale.js","webpack://_N_E/./node_modules/next/dist/client/image.js","webpack://_N_E/./node_modules/next/dist/client/link.js","webpack://_N_E/./node_modules/next/dist/client/use-intersection.js","webpack://_N_E/./node_modules/next/dist/shared/lib/image-blur-svg.js","webpack://_N_E/./node_modules/next/dist/shared/lib/image-loader.js","webpack://_N_E/./node_modules/next/image.js","webpack://_N_E/./node_modules/next/link.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-is/index.js","webpack://_N_E/./node_modules/react-transition-group/esm/config.js","webpack://_N_E/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://_N_E/./node_modules/react-transition-group/esm/Transition.js","webpack://_N_E/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/extends.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://_N_E/./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://_N_E/./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://_N_E/./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://_N_E/./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://_N_E/./node_modules/@swc/helpers/src/_tagged_template_literal.mjs","webpack://_N_E/./node_modules/bignumber.js/bignumber.mjs","webpack://_N_E/./node_modules/decimal.js/decimal.mjs","webpack://_N_E/"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/base-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport { Portal };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { isHostComponent } from './isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nexport function appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nexport function extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nexport function isHostComponent(element) {\n return typeof element === 'string';\n}","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nexport function omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport { extractEventHandlers } from './extractEventHandlers';\nimport { omitEventHandlers } from './omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nexport function mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nexport function resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { appendOwnerState } from './appendOwnerState';\nimport { mergeSlotProps } from './mergeSlotProps';\nimport { resolveComponentProps } from './resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nexport function useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getBackdropUtilityClass(slot) {\n return generateUtilityClass('MuiBackdrop', slot);\n}\nconst backdropClasses = generateUtilityClasses('MuiBackdrop', ['root', 'invisible']);\nexport default backdropClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"components\", \"componentsProps\", \"invisible\", \"open\", \"slotProps\", \"slots\", \"TransitionComponent\", \"transitionDuration\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Fade from '../Fade';\nimport { getBackdropUtilityClass } from './backdropClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n invisible\n } = ownerState;\n const slots = {\n root: ['root', invisible && 'invisible']\n };\n return composeClasses(slots, getBackdropUtilityClass, classes);\n};\nconst BackdropRoot = styled('div', {\n name: 'MuiBackdrop',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.invisible && styles.invisible];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n}, ownerState.invisible && {\n backgroundColor: 'transparent'\n}));\nconst Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {\n var _slotProps$root, _ref, _slots$root;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiBackdrop'\n });\n const {\n children,\n className,\n component = 'div',\n components = {},\n componentsProps = {},\n invisible = false,\n open,\n slotProps = {},\n slots = {},\n TransitionComponent = Fade,\n transitionDuration\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n invisible\n });\n const classes = useUtilityClasses(ownerState);\n const rootSlotProps = (_slotProps$root = slotProps.root) != null ? _slotProps$root : componentsProps.root;\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other, {\n children: /*#__PURE__*/_jsx(BackdropRoot, _extends({\n \"aria-hidden\": true\n }, rootSlotProps, {\n as: (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : component,\n className: clsx(classes.root, className, rootSlotProps == null ? void 0 : rootSlotProps.className),\n ownerState: _extends({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),\n classes: classes,\n ref: ref,\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Backdrop;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nimport THEME_ID from '../styles/identifier';\nimport boxClasses from './boxClasses';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonUtilityClass(slot) {\n return generateUtilityClass('MuiButton', slot);\n}\nconst buttonClasses = generateUtilityClasses('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorError', 'colorInfo', 'colorWarning', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'icon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);\nexport default buttonClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"color\", \"component\", \"className\", \"disabled\", \"disableElevation\", \"disableFocusRipple\", \"endIcon\", \"focusVisibleClassName\", \"fullWidth\", \"size\", \"startIcon\", \"type\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport resolveProps from '@mui/utils/resolveProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport buttonClasses, { getButtonUtilityClass } from './buttonClasses';\nimport ButtonGroupContext from '../ButtonGroup/ButtonGroupContext';\nimport ButtonGroupButtonContext from '../ButtonGroup/ButtonGroupButtonContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n disableElevation,\n fullWidth,\n size,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, `${variant}${capitalize(color)}`, `size${capitalize(size)}`, `${variant}Size${capitalize(size)}`, `color${capitalize(color)}`, disableElevation && 'disableElevation', fullWidth && 'fullWidth'],\n label: ['label'],\n startIcon: ['icon', 'startIcon', `iconSize${capitalize(size)}`],\n endIcon: ['icon', 'endIcon', `iconSize${capitalize(size)}`]\n };\n const composedClasses = composeClasses(slots, getButtonUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst commonIconStyles = ownerState => _extends({}, ownerState.size === 'small' && {\n '& > *:nth-of-type(1)': {\n fontSize: 18\n }\n}, ownerState.size === 'medium' && {\n '& > *:nth-of-type(1)': {\n fontSize: 20\n }\n}, ownerState.size === 'large' && {\n '& > *:nth-of-type(1)': {\n fontSize: 22\n }\n});\nconst ButtonRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`${ownerState.variant}${capitalize(ownerState.color)}`], styles[`size${capitalize(ownerState.size)}`], styles[`${ownerState.variant}Size${capitalize(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, ownerState.disableElevation && styles.disableElevation, ownerState.fullWidth && styles.fullWidth];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$palette$getCon, _theme$palette;\n const inheritContainedBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey[300] : theme.palette.grey[800];\n const inheritContainedHoverBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey.A100 : theme.palette.grey[700];\n return _extends({}, theme.typography.button, {\n minWidth: 64,\n padding: '6px 16px',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': _extends({\n textDecoration: 'none',\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {\n border: `1px solid ${(theme.vars || theme).palette[ownerState.color].main}`,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }, ownerState.variant === 'contained' && {\n backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedHoverBg : inheritContainedHoverBackgroundColor,\n boxShadow: (theme.vars || theme).shadows[4],\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n boxShadow: (theme.vars || theme).shadows[2],\n backgroundColor: (theme.vars || theme).palette.grey[300]\n }\n }, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }\n }),\n '&:active': _extends({}, ownerState.variant === 'contained' && {\n boxShadow: (theme.vars || theme).shadows[8]\n }),\n [`&.${buttonClasses.focusVisible}`]: _extends({}, ownerState.variant === 'contained' && {\n boxShadow: (theme.vars || theme).shadows[6]\n }),\n [`&.${buttonClasses.disabled}`]: _extends({\n color: (theme.vars || theme).palette.action.disabled\n }, ownerState.variant === 'outlined' && {\n border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`\n }, ownerState.variant === 'contained' && {\n color: (theme.vars || theme).palette.action.disabled,\n boxShadow: (theme.vars || theme).shadows[0],\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n })\n }, ownerState.variant === 'text' && {\n padding: '6px 8px'\n }, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main\n }, ownerState.variant === 'outlined' && {\n padding: '5px 15px',\n border: '1px solid currentColor'\n }, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main,\n border: theme.vars ? `1px solid rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)` : `1px solid ${alpha(theme.palette[ownerState.color].main, 0.5)}`\n }, ownerState.variant === 'contained' && {\n color: theme.vars ?\n // this is safe because grey does not change between default light/dark mode\n theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),\n backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedBg : inheritContainedBackgroundColor,\n boxShadow: (theme.vars || theme).shadows[2]\n }, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].contrastText,\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }, ownerState.color === 'inherit' && {\n color: 'inherit',\n borderColor: 'currentColor'\n }, ownerState.size === 'small' && ownerState.variant === 'text' && {\n padding: '4px 5px',\n fontSize: theme.typography.pxToRem(13)\n }, ownerState.size === 'large' && ownerState.variant === 'text' && {\n padding: '8px 11px',\n fontSize: theme.typography.pxToRem(15)\n }, ownerState.size === 'small' && ownerState.variant === 'outlined' && {\n padding: '3px 9px',\n fontSize: theme.typography.pxToRem(13)\n }, ownerState.size === 'large' && ownerState.variant === 'outlined' && {\n padding: '7px 21px',\n fontSize: theme.typography.pxToRem(15)\n }, ownerState.size === 'small' && ownerState.variant === 'contained' && {\n padding: '4px 10px',\n fontSize: theme.typography.pxToRem(13)\n }, ownerState.size === 'large' && ownerState.variant === 'contained' && {\n padding: '8px 22px',\n fontSize: theme.typography.pxToRem(15)\n }, ownerState.fullWidth && {\n width: '100%'\n });\n}, ({\n ownerState\n}) => ownerState.disableElevation && {\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none'\n },\n [`&.${buttonClasses.focusVisible}`]: {\n boxShadow: 'none'\n },\n '&:active': {\n boxShadow: 'none'\n },\n [`&.${buttonClasses.disabled}`]: {\n boxShadow: 'none'\n }\n});\nconst ButtonStartIcon = styled('span', {\n name: 'MuiButton',\n slot: 'StartIcon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.startIcon, styles[`iconSize${capitalize(ownerState.size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inherit',\n marginRight: 8,\n marginLeft: -4\n}, ownerState.size === 'small' && {\n marginLeft: -2\n}, commonIconStyles(ownerState)));\nconst ButtonEndIcon = styled('span', {\n name: 'MuiButton',\n slot: 'EndIcon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.endIcon, styles[`iconSize${capitalize(ownerState.size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inherit',\n marginRight: -4,\n marginLeft: 8\n}, ownerState.size === 'small' && {\n marginRight: -2\n}, commonIconStyles(ownerState)));\nconst Button = /*#__PURE__*/React.forwardRef(function Button(inProps, ref) {\n // props priority: `inProps` > `contextProps` > `themeDefaultProps`\n const contextProps = React.useContext(ButtonGroupContext);\n const buttonGroupButtonContextPositionClassName = React.useContext(ButtonGroupButtonContext);\n const resolvedProps = resolveProps(contextProps, inProps);\n const props = useDefaultProps({\n props: resolvedProps,\n name: 'MuiButton'\n });\n const {\n children,\n color = 'primary',\n component = 'button',\n className,\n disabled = false,\n disableElevation = false,\n disableFocusRipple = false,\n endIcon: endIconProp,\n focusVisibleClassName,\n fullWidth = false,\n size = 'medium',\n startIcon: startIconProp,\n type,\n variant = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n disabled,\n disableElevation,\n disableFocusRipple,\n fullWidth,\n size,\n type,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const startIcon = startIconProp && /*#__PURE__*/_jsx(ButtonStartIcon, {\n className: classes.startIcon,\n ownerState: ownerState,\n children: startIconProp\n });\n const endIcon = endIconProp && /*#__PURE__*/_jsx(ButtonEndIcon, {\n className: classes.endIcon,\n ownerState: ownerState,\n children: endIconProp\n });\n const positionClassName = buttonGroupButtonContextPositionClassName || '';\n return /*#__PURE__*/_jsxs(ButtonRoot, _extends({\n ownerState: ownerState,\n className: clsx(contextProps.className, classes.root, className, positionClassName),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ref: ref,\n type: type\n }, other, {\n classes: classes,\n children: [startIcon, children, endIcon]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Button.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'success', 'error', 'info', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, no elevation is used.\n * @default false\n */\n disableElevation: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * Element placed after the children.\n */\n endIcon: PropTypes.node,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * If `true`, the button will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: PropTypes.string,\n /**\n * The size of the component.\n * `small` is equivalent to the dense button styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * Element placed before the children.\n */\n startIcon: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string]),\n /**\n * The variant to use.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['contained', 'outlined', 'text']), PropTypes.string])\n} : void 0;\nexport default Button;","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 };","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport useTimeout from '@mui/utils/useTimeout';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = useTimeout();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import React from 'react';\nexport default React.createContext(null);","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 _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.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _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 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 };","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","/*!\r\n * decimal.js v10.4.3\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n// ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\nvar EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n inexact, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\nP.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\nP.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\nP.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\nP.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\nP.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\nP.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\nP.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\nP.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\nP.inverseCosine = P.acos = function () {\r\n var halfPi,\r\n x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.asin();\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return halfPi.minus(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\nP.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\nP.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\nP.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\nP.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\nP.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\nP.isFinite = function () {\r\n return !!this.d;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\nP.isNaN = function () {\r\n return !this.s;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\nP.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n};\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\nP.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n};\r\n */\r\n\r\n\r\n/*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\nP.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\nP.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\nP.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\nP.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\nfunction checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n// Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n// Eg. convertBase('255', 10, 16) returns [15, 15].\r\n// Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\nfunction convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n}\r\n\r\n\r\n/*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Perform division in the specified base.\r\n */\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n}\r\n\r\n\r\nfunction getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n}\r\n\r\n\r\nfunction getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\nfunction intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n}\r\n\r\n\r\nfunction isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n}\r\n\r\n\r\n/*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\r\nfunction maxOrMin(Ctor, args, ltgt) {\r\n var y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n } else if (x[ltgt](y)) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\nfunction naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\nfunction naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n// ±Infinity, NaN.\r\nfunction nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\nfunction parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\nfunction taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n}\r\n\r\n\r\n// Exponent e must be positive and non-zero.\r\nfunction tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n}\r\n\r\n\r\n// Return the absolute value of `x` reduced to less than or equal to half pi.\r\nfunction toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\nfunction toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction abs(x) {\r\n return new this(x).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction acos(x) {\r\n return new this(x).acos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction acosh(x) {\r\n return new this(x).acosh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction add(x, y) {\r\n return new this(x).plus(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction asin(x) {\r\n return new this(x).asin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction asinh(x) {\r\n return new this(x).asinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction atan(x) {\r\n return new this(x).atan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction atanh(x) {\r\n return new this(x).atanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\nfunction atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction cbrt(x) {\r\n return new this(x).cbrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|Decimal}\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\nfunction clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cos(x) {\r\n return new this(x).cos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cosh(x) {\r\n return new this(x).cosh();\r\n}\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n\r\n // Infinity, NaN.\r\n } else if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n\r\n } else if (t !== 'string') {\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n // Minus sign?\r\n if ((i = v.charCodeAt(0)) === 45) {\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n // Plus sign?\r\n if (i === 43) v = v.slice(1);\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction div(x, y) {\r\n return new this(x).div(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\nfunction exp(x) {\r\n return new this(x).exp();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\nfunction isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction ln(x) {\r\n return new this(x).ln();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nfunction log(x, y) {\r\n return new this(x).log(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction log2(x) {\r\n return new this(x).log(2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction log10(x) {\r\n return new this(x).log(10);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction max() {\r\n return maxOrMin(this, arguments, 'lt');\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction min() {\r\n return maxOrMin(this, arguments, 'gt');\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction mod(x, y) {\r\n return new this(x).mod(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction mul(x, y) {\r\n return new this(x).mul(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\r\nfunction pow(x, y) {\r\n return new this(x).pow(y);\r\n}\r\n\r\n\r\n/*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\nfunction random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sin(x) {\r\n return new this(x).sin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sinh(x) {\r\n return new this(x).sinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction sqrt(x) {\r\n return new this(x).sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction sub(x, y) {\r\n return new this(x).sub(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tan(x) {\r\n return new this(x).tan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tanh(x) {\r\n return new this(x).tanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n}\r\n\r\n\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\nP[Symbol.toStringTag] = 'Decimal';\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = P.constructor = clone(DEFAULTS);\r\n\r\n// Create the internal constants from their string values.\r\nLN10 = new Decimal(LN10);\r\nPI = new Decimal(PI);\r\n\r\nexport default Decimal;\r\n","(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[904],{\n\n/***/ 78385:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"h\": function() { return /* binding */ Portal; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67294);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73935);\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22760);\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54895);\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25091);\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85893);\n'use client';\n\n\n\n\n\n\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/base-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)\n */\nconst Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children) ? children.ref : null, forwardedRef);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)(() => {\n if (mountNode && !disablePortal) {\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z)(forwardedRef, mountNode);\n return () => {\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z)(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, newProps);\n }\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: mountNode ? /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(children, mountNode) : mountNode\n });\n});\n false ? 0 : void 0;\nif (false) {}\n\n\n/***/ }),\n\n/***/ 10238:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"$\": function() { return /* binding */ appendOwnerState; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87462);\n/* harmony import */ var _isHostComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28442);\n\n\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || (0,_isHostComponent__WEBPACK_IMPORTED_MODULE_0__/* .isHostComponent */ .X)(elementType)) {\n return otherProps;\n }\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z)({}, otherProps, {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z)({}, otherProps.ownerState, ownerState)\n });\n}\n\n/***/ }),\n\n/***/ 30437:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"_\": function() { return /* binding */ extractEventHandlers; }\n/* harmony export */ });\n/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\n\n/***/ }),\n\n/***/ 28442:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"X\": function() { return /* binding */ isHostComponent; }\n/* harmony export */ });\n/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\n\n/***/ }),\n\n/***/ 24407:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"L\": function() { return /* binding */ mergeSlotProps; }\n});\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(87462);\n// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs\nvar clsx = __webpack_require__(90512);\n// EXTERNAL MODULE: ./node_modules/@mui/base/utils/extractEventHandlers.js\nvar extractEventHandlers = __webpack_require__(30437);\n;// CONCATENATED MODULE: ./node_modules/@mui/base/utils/omitEventHandlers.js\n/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\n;// CONCATENATED MODULE: ./node_modules/@mui/base/utils/mergeSlotProps.js\n\n\n\n\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = (0,clsx/* default */.Z)(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = (0,esm_extends/* default */.Z)({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = (0,esm_extends/* default */.Z)({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = (0,extractEventHandlers/* extractEventHandlers */._)((0,esm_extends/* default */.Z)({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = (0,clsx/* default */.Z)(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = (0,esm_extends/* default */.Z)({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = (0,esm_extends/* default */.Z)({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\n\n/***/ }),\n\n/***/ 71276:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"x\": function() { return /* binding */ resolveComponentProps; }\n/* harmony export */ });\n/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\n\n/***/ }),\n\n/***/ 7293:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"y\": function() { return /* binding */ useSlotProps; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87462);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63366);\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22760);\n/* harmony import */ var _appendOwnerState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10238);\n/* harmony import */ var _mergeSlotProps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24407);\n/* harmony import */ var _resolveComponentProps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71276);\n'use client';\n\n\n\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\n\n\n\n\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nfunction useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .Z)(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : (0,_resolveComponentProps__WEBPACK_IMPORTED_MODULE_1__/* .resolveComponentProps */ .x)(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = (0,_mergeSlotProps__WEBPACK_IMPORTED_MODULE_2__/* .mergeSlotProps */ .L)((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = (0,_appendOwnerState__WEBPACK_IMPORTED_MODULE_5__/* .appendOwnerState */ .$)(elementType, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}\n\n/***/ }),\n\n/***/ 84808:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": function() { return /* binding */ Backdrop_Backdrop; }\n});\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\nvar objectWithoutPropertiesLoose = __webpack_require__(63366);\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(87462);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs\nvar clsx = __webpack_require__(90512);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/composeClasses/composeClasses.js\nvar composeClasses = __webpack_require__(58510);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js\nvar styled = __webpack_require__(90948);\n// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js\nvar DefaultPropsProvider = __webpack_require__(28628);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Fade/Fade.js\nvar Fade = __webpack_require__(16628);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js\nvar generateUtilityClasses = __webpack_require__(1977);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js\nvar generateUtilityClass = __webpack_require__(8027);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/Backdrop/backdropClasses.js\n\n\nfunction getBackdropUtilityClass(slot) {\n return (0,generateUtilityClass/* default */.ZP)('MuiBackdrop', slot);\n}\nconst backdropClasses = (0,generateUtilityClasses/* default */.Z)('MuiBackdrop', ['root', 'invisible']);\n/* harmony default export */ var Backdrop_backdropClasses = ((/* unused pure expression or super */ null && (backdropClasses)));\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(85893);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/Backdrop/Backdrop.js\n'use client';\n\n\n\nconst _excluded = [\"children\", \"className\", \"component\", \"components\", \"componentsProps\", \"invisible\", \"open\", \"slotProps\", \"slots\", \"TransitionComponent\", \"transitionDuration\"];\n\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n invisible\n } = ownerState;\n const slots = {\n root: ['root', invisible && 'invisible']\n };\n return (0,composeClasses/* default */.Z)(slots, getBackdropUtilityClass, classes);\n};\nconst BackdropRoot = (0,styled/* default */.ZP)('div', {\n name: 'MuiBackdrop',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.invisible && styles.invisible];\n }\n})(({\n ownerState\n}) => (0,esm_extends/* default */.Z)({\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n}, ownerState.invisible && {\n backgroundColor: 'transparent'\n}));\nconst Backdrop = /*#__PURE__*/react.forwardRef(function Backdrop(inProps, ref) {\n var _slotProps$root, _ref, _slots$root;\n const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({\n props: inProps,\n name: 'MuiBackdrop'\n });\n const {\n children,\n className,\n component = 'div',\n components = {},\n componentsProps = {},\n invisible = false,\n open,\n slotProps = {},\n slots = {},\n TransitionComponent = Fade/* default */.Z,\n transitionDuration\n } = props,\n other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);\n const ownerState = (0,esm_extends/* default */.Z)({}, props, {\n component,\n invisible\n });\n const classes = useUtilityClasses(ownerState);\n const rootSlotProps = (_slotProps$root = slotProps.root) != null ? _slotProps$root : componentsProps.root;\n return /*#__PURE__*/(0,jsx_runtime.jsx)(TransitionComponent, (0,esm_extends/* default */.Z)({\n in: open,\n timeout: transitionDuration\n }, other, {\n children: /*#__PURE__*/(0,jsx_runtime.jsx)(BackdropRoot, (0,esm_extends/* default */.Z)({\n \"aria-hidden\": true\n }, rootSlotProps, {\n as: (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : component,\n className: (0,clsx/* default */.Z)(classes.root, className, rootSlotProps == null ? void 0 : rootSlotProps.className),\n ownerState: (0,esm_extends/* default */.Z)({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),\n classes: classes,\n ref: ref,\n children: children\n }))\n }));\n});\n false ? 0 : void 0;\n/* harmony default export */ var Backdrop_Backdrop = (Backdrop);\n\n/***/ }),\n\n/***/ 5616:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": function() { return /* binding */ Box_Box; }\n});\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(87462);\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\nvar objectWithoutPropertiesLoose = __webpack_require__(63366);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs\nvar clsx = __webpack_require__(90512);\n// EXTERNAL MODULE: ./node_modules/@mui/styled-engine/index.js + 4 modules\nvar styled_engine = __webpack_require__(63390);\n// EXTERNAL MODULE: ./node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js\nvar styleFunctionSx = __webpack_require__(86523);\n// EXTERNAL MODULE: ./node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js\nvar extendSxProp = __webpack_require__(39707);\n// EXTERNAL MODULE: ./node_modules/@mui/system/esm/useTheme.js\nvar useTheme = __webpack_require__(96682);\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(85893);\n;// CONCATENATED MODULE: ./node_modules/@mui/system/esm/createBox.js\n'use client';\n\n\n\nconst _excluded = [\"className\", \"component\"];\n\n\n\n\n\n\nfunction createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = (0,styled_engine[\"default\"])('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx/* default */.Z);\n const Box = /*#__PURE__*/react.forwardRef(function Box(inProps, ref) {\n const theme = (0,useTheme/* default */.Z)(defaultTheme);\n const _extendSxProp = (0,extendSxProp/* default */.Z)(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = (0,objectWithoutPropertiesLoose/* default */.Z)(_extendSxProp, _excluded);\n return /*#__PURE__*/(0,jsx_runtime.jsx)(BoxRoot, (0,esm_extends/* default */.Z)({\n as: component,\n ref: ref,\n className: (0,clsx/* default */.Z)(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}\n// EXTERNAL MODULE: ./node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js\nvar ClassNameGenerator = __webpack_require__(31983);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/createTheme.js + 13 modules\nvar createTheme = __webpack_require__(68239);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/identifier.js\nvar identifier = __webpack_require__(10606);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js\nvar generateUtilityClasses = __webpack_require__(1977);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/Box/boxClasses.js\n\nconst boxClasses = (0,generateUtilityClasses/* default */.Z)('MuiBox', ['root']);\n/* harmony default export */ var Box_boxClasses = (boxClasses);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/Box/Box.js\n'use client';\n\n\n\n\n\n\n\nconst defaultTheme = (0,createTheme/* default */.Z)();\nconst Box = createBox({\n themeId: identifier/* default */.Z,\n defaultTheme,\n defaultClassName: Box_boxClasses.root,\n generateClassName: ClassNameGenerator/* default.generate */.Z.generate\n});\n false ? 0 : void 0;\n/* harmony default export */ var Box_Box = (Box);\n\n/***/ }),\n\n/***/ 11057:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": function() { return /* binding */ Button_Button; }\n});\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\nvar objectWithoutPropertiesLoose = __webpack_require__(63366);\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(87462);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs\nvar clsx = __webpack_require__(90512);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/resolveProps/resolveProps.js\nvar resolveProps = __webpack_require__(62236);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/composeClasses/composeClasses.js\nvar composeClasses = __webpack_require__(58510);\n// EXTERNAL MODULE: ./node_modules/@mui/system/colorManipulator.js\nvar colorManipulator = __webpack_require__(2101);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js\nvar styled = __webpack_require__(90948);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/rootShouldForwardProp.js\nvar rootShouldForwardProp = __webpack_require__(14136);\n// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js\nvar DefaultPropsProvider = __webpack_require__(28628);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ButtonBase/ButtonBase.js + 7 modules\nvar ButtonBase = __webpack_require__(47739);\n// EXTERNAL MODULE: ./node_modules/@mui/material/utils/capitalize.js\nvar capitalize = __webpack_require__(98216);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js\nvar generateUtilityClasses = __webpack_require__(1977);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js\nvar generateUtilityClass = __webpack_require__(8027);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/Button/buttonClasses.js\n\n\nfunction getButtonUtilityClass(slot) {\n return (0,generateUtilityClass/* default */.ZP)('MuiButton', slot);\n}\nconst buttonClasses = (0,generateUtilityClasses/* default */.Z)('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorError', 'colorInfo', 'colorWarning', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'icon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);\n/* harmony default export */ var Button_buttonClasses = (buttonClasses);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js\nvar ButtonGroupContext = __webpack_require__(98363);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js\nvar ButtonGroupButtonContext = __webpack_require__(93326);\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(85893);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/Button/Button.js\n'use client';\n\n\n\nconst _excluded = [\"children\", \"color\", \"component\", \"className\", \"disabled\", \"disableElevation\", \"disableFocusRipple\", \"endIcon\", \"focusVisibleClassName\", \"fullWidth\", \"size\", \"startIcon\", \"type\", \"variant\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n color,\n disableElevation,\n fullWidth,\n size,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, `${variant}${(0,capitalize/* default */.Z)(color)}`, `size${(0,capitalize/* default */.Z)(size)}`, `${variant}Size${(0,capitalize/* default */.Z)(size)}`, `color${(0,capitalize/* default */.Z)(color)}`, disableElevation && 'disableElevation', fullWidth && 'fullWidth'],\n label: ['label'],\n startIcon: ['icon', 'startIcon', `iconSize${(0,capitalize/* default */.Z)(size)}`],\n endIcon: ['icon', 'endIcon', `iconSize${(0,capitalize/* default */.Z)(size)}`]\n };\n const composedClasses = (0,composeClasses/* default */.Z)(slots, getButtonUtilityClass, classes);\n return (0,esm_extends/* default */.Z)({}, classes, composedClasses);\n};\nconst commonIconStyles = ownerState => (0,esm_extends/* default */.Z)({}, ownerState.size === 'small' && {\n '& > *:nth-of-type(1)': {\n fontSize: 18\n }\n}, ownerState.size === 'medium' && {\n '& > *:nth-of-type(1)': {\n fontSize: 20\n }\n}, ownerState.size === 'large' && {\n '& > *:nth-of-type(1)': {\n fontSize: 22\n }\n});\nconst ButtonRoot = (0,styled/* default */.ZP)(ButtonBase/* default */.Z, {\n shouldForwardProp: prop => (0,rootShouldForwardProp/* default */.Z)(prop) || prop === 'classes',\n name: 'MuiButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`${ownerState.variant}${(0,capitalize/* default */.Z)(ownerState.color)}`], styles[`size${(0,capitalize/* default */.Z)(ownerState.size)}`], styles[`${ownerState.variant}Size${(0,capitalize/* default */.Z)(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, ownerState.disableElevation && styles.disableElevation, ownerState.fullWidth && styles.fullWidth];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$palette$getCon, _theme$palette;\n const inheritContainedBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey[300] : theme.palette.grey[800];\n const inheritContainedHoverBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey.A100 : theme.palette.grey[700];\n return (0,esm_extends/* default */.Z)({}, theme.typography.button, {\n minWidth: 64,\n padding: '6px 16px',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': (0,esm_extends/* default */.Z)({\n textDecoration: 'none',\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0,colorManipulator/* alpha */.Fq)(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0,colorManipulator/* alpha */.Fq)(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {\n border: `1px solid ${(theme.vars || theme).palette[ownerState.color].main}`,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0,colorManipulator/* alpha */.Fq)(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }, ownerState.variant === 'contained' && {\n backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedHoverBg : inheritContainedHoverBackgroundColor,\n boxShadow: (theme.vars || theme).shadows[4],\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n boxShadow: (theme.vars || theme).shadows[2],\n backgroundColor: (theme.vars || theme).palette.grey[300]\n }\n }, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }\n }),\n '&:active': (0,esm_extends/* default */.Z)({}, ownerState.variant === 'contained' && {\n boxShadow: (theme.vars || theme).shadows[8]\n }),\n [`&.${Button_buttonClasses.focusVisible}`]: (0,esm_extends/* default */.Z)({}, ownerState.variant === 'contained' && {\n boxShadow: (theme.vars || theme).shadows[6]\n }),\n [`&.${Button_buttonClasses.disabled}`]: (0,esm_extends/* default */.Z)({\n color: (theme.vars || theme).palette.action.disabled\n }, ownerState.variant === 'outlined' && {\n border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`\n }, ownerState.variant === 'contained' && {\n color: (theme.vars || theme).palette.action.disabled,\n boxShadow: (theme.vars || theme).shadows[0],\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n })\n }, ownerState.variant === 'text' && {\n padding: '6px 8px'\n }, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main\n }, ownerState.variant === 'outlined' && {\n padding: '5px 15px',\n border: '1px solid currentColor'\n }, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main,\n border: theme.vars ? `1px solid rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)` : `1px solid ${(0,colorManipulator/* alpha */.Fq)(theme.palette[ownerState.color].main, 0.5)}`\n }, ownerState.variant === 'contained' && {\n color: theme.vars ?\n // this is safe because grey does not change between default light/dark mode\n theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),\n backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedBg : inheritContainedBackgroundColor,\n boxShadow: (theme.vars || theme).shadows[2]\n }, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].contrastText,\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }, ownerState.color === 'inherit' && {\n color: 'inherit',\n borderColor: 'currentColor'\n }, ownerState.size === 'small' && ownerState.variant === 'text' && {\n padding: '4px 5px',\n fontSize: theme.typography.pxToRem(13)\n }, ownerState.size === 'large' && ownerState.variant === 'text' && {\n padding: '8px 11px',\n fontSize: theme.typography.pxToRem(15)\n }, ownerState.size === 'small' && ownerState.variant === 'outlined' && {\n padding: '3px 9px',\n fontSize: theme.typography.pxToRem(13)\n }, ownerState.size === 'large' && ownerState.variant === 'outlined' && {\n padding: '7px 21px',\n fontSize: theme.typography.pxToRem(15)\n }, ownerState.size === 'small' && ownerState.variant === 'contained' && {\n padding: '4px 10px',\n fontSize: theme.typography.pxToRem(13)\n }, ownerState.size === 'large' && ownerState.variant === 'contained' && {\n padding: '8px 22px',\n fontSize: theme.typography.pxToRem(15)\n }, ownerState.fullWidth && {\n width: '100%'\n });\n}, ({\n ownerState\n}) => ownerState.disableElevation && {\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none'\n },\n [`&.${Button_buttonClasses.focusVisible}`]: {\n boxShadow: 'none'\n },\n '&:active': {\n boxShadow: 'none'\n },\n [`&.${Button_buttonClasses.disabled}`]: {\n boxShadow: 'none'\n }\n});\nconst ButtonStartIcon = (0,styled/* default */.ZP)('span', {\n name: 'MuiButton',\n slot: 'StartIcon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.startIcon, styles[`iconSize${(0,capitalize/* default */.Z)(ownerState.size)}`]];\n }\n})(({\n ownerState\n}) => (0,esm_extends/* default */.Z)({\n display: 'inherit',\n marginRight: 8,\n marginLeft: -4\n}, ownerState.size === 'small' && {\n marginLeft: -2\n}, commonIconStyles(ownerState)));\nconst ButtonEndIcon = (0,styled/* default */.ZP)('span', {\n name: 'MuiButton',\n slot: 'EndIcon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.endIcon, styles[`iconSize${(0,capitalize/* default */.Z)(ownerState.size)}`]];\n }\n})(({\n ownerState\n}) => (0,esm_extends/* default */.Z)({\n display: 'inherit',\n marginRight: -4,\n marginLeft: 8\n}, ownerState.size === 'small' && {\n marginRight: -2\n}, commonIconStyles(ownerState)));\nconst Button = /*#__PURE__*/react.forwardRef(function Button(inProps, ref) {\n // props priority: `inProps` > `contextProps` > `themeDefaultProps`\n const contextProps = react.useContext(ButtonGroupContext/* default */.Z);\n const buttonGroupButtonContextPositionClassName = react.useContext(ButtonGroupButtonContext/* default */.Z);\n const resolvedProps = (0,resolveProps/* default */.Z)(contextProps, inProps);\n const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({\n props: resolvedProps,\n name: 'MuiButton'\n });\n const {\n children,\n color = 'primary',\n component = 'button',\n className,\n disabled = false,\n disableElevation = false,\n disableFocusRipple = false,\n endIcon: endIconProp,\n focusVisibleClassName,\n fullWidth = false,\n size = 'medium',\n startIcon: startIconProp,\n type,\n variant = 'text'\n } = props,\n other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);\n const ownerState = (0,esm_extends/* default */.Z)({}, props, {\n color,\n component,\n disabled,\n disableElevation,\n disableFocusRipple,\n fullWidth,\n size,\n type,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const startIcon = startIconProp && /*#__PURE__*/(0,jsx_runtime.jsx)(ButtonStartIcon, {\n className: classes.startIcon,\n ownerState: ownerState,\n children: startIconProp\n });\n const endIcon = endIconProp && /*#__PURE__*/(0,jsx_runtime.jsx)(ButtonEndIcon, {\n className: classes.endIcon,\n ownerState: ownerState,\n children: endIconProp\n });\n const positionClassName = buttonGroupButtonContextPositionClassName || '';\n return /*#__PURE__*/(0,jsx_runtime.jsxs)(ButtonRoot, (0,esm_extends/* default */.Z)({\n ownerState: ownerState,\n className: (0,clsx/* default */.Z)(contextProps.className, classes.root, className, positionClassName),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: (0,clsx/* default */.Z)(classes.focusVisible, focusVisibleClassName),\n ref: ref,\n type: type\n }, other, {\n classes: classes,\n children: [startIcon, children, endIcon]\n }));\n});\n false ? 0 : void 0;\n/* harmony default export */ var Button_Button = (Button);\n\n/***/ }),\n\n/***/ 47739:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": function() { return /* binding */ ButtonBase_ButtonBase; }\n});\n\n// UNUSED EXPORTS: ButtonBaseRoot\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(87462);\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\nvar objectWithoutPropertiesLoose = __webpack_require__(63366);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs\nvar clsx = __webpack_require__(90512);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/composeClasses/composeClasses.js\nvar composeClasses = __webpack_require__(58510);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js\nvar styled = __webpack_require__(90948);\n// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js\nvar DefaultPropsProvider = __webpack_require__(28628);\n// EXTERNAL MODULE: ./node_modules/@mui/material/utils/useForkRef.js\nvar useForkRef = __webpack_require__(51705);\n// EXTERNAL MODULE: ./node_modules/@mui/material/utils/useEventCallback.js\nvar useEventCallback = __webpack_require__(2068);\n// EXTERNAL MODULE: ./node_modules/@mui/material/utils/useIsFocusVisible.js + 1 modules\nvar useIsFocusVisible = __webpack_require__(39632);\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nfunction _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js + 1 modules\nvar inheritsLoose = __webpack_require__(75068);\n// EXTERNAL MODULE: ./node_modules/react-transition-group/esm/TransitionGroupContext.js\nvar TransitionGroupContext = __webpack_require__(220);\n;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/utils/ChildMapping.js\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0,react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0,react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0,react.isValidElement)(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = (0,react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0,react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0,react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0,react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0,react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}\n;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/TransitionGroup.js\n\n\n\n\n\n\n\n\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n (0,inheritsLoose/* default */.Z)(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = (0,esm_extends/* default */.Z)({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/react.createElement(TransitionGroupContext/* default.Provider */.Z.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/react.createElement(TransitionGroupContext/* default.Provider */.Z.Provider, {\n value: contextValue\n }, /*#__PURE__*/react.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(react.Component);\n\nTransitionGroup.propTypes = false ? 0 : {};\nTransitionGroup.defaultProps = defaultProps;\n/* harmony default export */ var esm_TransitionGroup = (TransitionGroup);\n// EXTERNAL MODULE: ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js\nvar emotion_react_browser_esm = __webpack_require__(70917);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/useTimeout/useTimeout.js + 2 modules\nvar useTimeout = __webpack_require__(39192);\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(85893);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/ButtonBase/Ripple.js\n'use client';\n\n\n\n\n\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = react.useState(false);\n const rippleClassName = (0,clsx/* default */.Z)(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = (0,clsx/* default */.Z)(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n react.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/(0,jsx_runtime.jsx)(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/(0,jsx_runtime.jsx)(\"span\", {\n className: childClassName\n })\n });\n}\n false ? 0 : void 0;\n/* harmony default export */ var ButtonBase_Ripple = (Ripple);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js\nvar generateUtilityClasses = __webpack_require__(1977);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/ButtonBase/touchRippleClasses.js\n\n\nfunction getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = (0,generateUtilityClasses/* default */.Z)('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\n/* harmony default export */ var ButtonBase_touchRippleClasses = (touchRippleClasses);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/ButtonBase/TouchRipple.js\n'use client';\n\n\n\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\n\n\n\n\n\n\n\n\n\n\n\nconst DURATION = 550;\nconst DELAY_RIPPLE = 80;\nconst enterKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nconst TouchRippleRoot = (0,styled/* default */.ZP)('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nconst TouchRippleRipple = (0,styled/* default */.ZP)(ButtonBase_Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), ButtonBase_touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, ButtonBase_touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, ButtonBase_touchRippleClasses.child, ButtonBase_touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, ButtonBase_touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/react.forwardRef(function TouchRipple(inProps, ref) {\n const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);\n const [ripples, setRipples] = react.useState([]);\n const nextKey = react.useRef(0);\n const rippleCallback = react.useRef(null);\n react.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = react.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = (0,useTimeout/* default */.Z)();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = react.useRef(null);\n const container = react.useRef(null);\n const startCommit = react.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/(0,jsx_runtime.jsx)(TouchRippleRipple, {\n classes: {\n ripple: (0,clsx/* default */.Z)(classes.ripple, ButtonBase_touchRippleClasses.ripple),\n rippleVisible: (0,clsx/* default */.Z)(classes.rippleVisible, ButtonBase_touchRippleClasses.rippleVisible),\n ripplePulsate: (0,clsx/* default */.Z)(classes.ripplePulsate, ButtonBase_touchRippleClasses.ripplePulsate),\n child: (0,clsx/* default */.Z)(classes.child, ButtonBase_touchRippleClasses.child),\n childLeaving: (0,clsx/* default */.Z)(classes.childLeaving, ButtonBase_touchRippleClasses.childLeaving),\n childPulsate: (0,clsx/* default */.Z)(classes.childPulsate, ButtonBase_touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = react.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = react.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = react.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n react.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/(0,jsx_runtime.jsx)(TouchRippleRoot, (0,esm_extends/* default */.Z)({\n className: (0,clsx/* default */.Z)(ButtonBase_touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/(0,jsx_runtime.jsx)(esm_TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\n false ? 0 : void 0;\n/* harmony default export */ var ButtonBase_TouchRipple = (TouchRipple);\n// EXTERNAL MODULE: ./node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js\nvar generateUtilityClass_generateUtilityClass = __webpack_require__(8027);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/ButtonBase/buttonBaseClasses.js\n\n\nfunction getButtonBaseUtilityClass(slot) {\n return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = (0,generateUtilityClasses/* default */.Z)('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\n/* harmony default export */ var ButtonBase_buttonBaseClasses = (buttonBaseClasses);\n;// CONCATENATED MODULE: ./node_modules/@mui/material/ButtonBase/ButtonBase.js\n'use client';\n\n\n\nconst ButtonBase_excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = (0,composeClasses/* default */.Z)(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nconst ButtonBaseRoot = (0,styled/* default */.ZP)('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${ButtonBase_buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/react.forwardRef(function ButtonBase(inProps, ref) {\n const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ButtonBase_excluded);\n const buttonRef = react.useRef(null);\n const rippleRef = react.useRef(null);\n const handleRippleRef = (0,useForkRef/* default */.Z)(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = (0,useIsFocusVisible/* default */.Z)();\n const [focusVisible, setFocusVisible] = react.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n react.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = react.useState(false);\n react.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n react.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return (0,useEventCallback/* default */.Z)(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = (0,useEventCallback/* default */.Z)(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = react.useRef(false);\n const handleKeyDown = (0,useEventCallback/* default */.Z)(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = (0,useEventCallback/* default */.Z)(event => {\n // calling preventDefault in keyUp on a \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n (0,inheritsLoose/* default */.Z)(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n react.createElement(TransitionGroupContext/* default.Provider */.Z.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(react.Component);\n\nTransition.contextType = TransitionGroupContext/* default */.Z;\nTransition.propTypes = false ? 0 : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\n/* harmony default export */ var esm_Transition = (Transition);\n\n/***/ }),\n\n/***/ 220:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67294);\n\n/* harmony default export */ __webpack_exports__[\"Z\"] = (react__WEBPACK_IMPORTED_MODULE_0__.createContext(null));\n\n/***/ }),\n\n/***/ 10434:\n/***/ (function(module) {\n\nfunction _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;\n\n/***/ }),\n\n/***/ 7071:\n/***/ (function(module) {\n\nfunction _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.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ 24632:\n/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Z\": function() { return /* binding */ _defineProperty; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/typeof.js\nfunction _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}\n\n;// CONCATENATED MODULE: ./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/toPrimitive.js\n\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}\n\n;// CONCATENATED MODULE: ./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\n\n\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\n\n;// CONCATENATED MODULE: ./node_modules/@solana/spl-token/node_modules/@babel/runtime/helpers/esm/defineProperty.js\n\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}\n\n\n/***/ }),\n\n/***/ 7297:\n/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": function() { return /* binding */ _taggedTemplateLiteral; }\n/* harmony export */ });\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\n\n/***/ }),\n\n/***/ 70794:\n/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export BigNumber */\n/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nvar BigNumber = clone();\r\n\r\n/* harmony default export */ __webpack_exports__[\"Z\"] = (BigNumber);\r\n\n\n/***/ }),\n\n/***/ 90482:\n/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Decimal */\n/*!\r\n * decimal.js v10.4.3\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n// ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\nvar EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n inexact, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\nP.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\nP.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\nP.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\nP.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\nP.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\nP.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\nP.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\nP.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\nP.inverseCosine = P.acos = function () {\r\n var halfPi,\r\n x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.asin();\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return halfPi.minus(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\nP.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\nP.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\nP.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\nP.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\nP.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\nP.isFinite = function () {\r\n return !!this.d;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\nP.isNaN = function () {\r\n return !this.s;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\nP.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n};\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\nP.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n};\r\n */\r\n\r\n\r\n/*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\nP.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\nP.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\nP.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\nP.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\nfunction checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n// Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n// Eg. convertBase('255', 10, 16) returns [15, 15].\r\n// Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\nfunction convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n}\r\n\r\n\r\n/*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Perform division in the specified base.\r\n */\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n}\r\n\r\n\r\nfunction getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n}\r\n\r\n\r\nfunction getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\nfunction intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n}\r\n\r\n\r\nfunction isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n}\r\n\r\n\r\n/*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\r\nfunction maxOrMin(Ctor, args, ltgt) {\r\n var y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n } else if (x[ltgt](y)) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\nfunction naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\nfunction naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n// ±Infinity, NaN.\r\nfunction nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\nfunction parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\nfunction taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n}\r\n\r\n\r\n// Exponent e must be positive and non-zero.\r\nfunction tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n}\r\n\r\n\r\n// Return the absolute value of `x` reduced to less than or equal to half pi.\r\nfunction toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\nfunction toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction abs(x) {\r\n return new this(x).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction acos(x) {\r\n return new this(x).acos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction acosh(x) {\r\n return new this(x).acosh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction add(x, y) {\r\n return new this(x).plus(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction asin(x) {\r\n return new this(x).asin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction asinh(x) {\r\n return new this(x).asinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction atan(x) {\r\n return new this(x).atan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction atanh(x) {\r\n return new this(x).atanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\nfunction atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction cbrt(x) {\r\n return new this(x).cbrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|Decimal}\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\nfunction clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cos(x) {\r\n return new this(x).cos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cosh(x) {\r\n return new this(x).cosh();\r\n}\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n\r\n // Infinity, NaN.\r\n } else if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n\r\n } else if (t !== 'string') {\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n // Minus sign?\r\n if ((i = v.charCodeAt(0)) === 45) {\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n // Plus sign?\r\n if (i === 43) v = v.slice(1);\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction div(x, y) {\r\n return new this(x).div(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\nfunction exp(x) {\r\n return new this(x).exp();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\nfunction isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction ln(x) {\r\n return new this(x).ln();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nfunction log(x, y) {\r\n return new this(x).log(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction log2(x) {\r\n return new this(x).log(2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction log10(x) {\r\n return new this(x).log(10);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction max() {\r\n return maxOrMin(this, arguments, 'lt');\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction min() {\r\n return maxOrMin(this, arguments, 'gt');\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction mod(x, y) {\r\n return new this(x).mod(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction mul(x, y) {\r\n return new this(x).mul(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\r\nfunction pow(x, y) {\r\n return new this(x).pow(y);\r\n}\r\n\r\n\r\n/*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\nfunction random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sin(x) {\r\n return new this(x).sin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sinh(x) {\r\n return new this(x).sinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction sqrt(x) {\r\n return new this(x).sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\nfunction sub(x, y) {\r\n return new this(x).sub(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\nfunction sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tan(x) {\r\n return new this(x).tan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tanh(x) {\r\n return new this(x).tanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\nfunction trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n}\r\n\r\n\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\nP[Symbol.toStringTag] = 'Decimal';\r\n\r\n// Create and configure initial Decimal constructor.\r\nvar Decimal = P.constructor = clone(DEFAULTS);\r\n\r\n// Create the internal constants from their string values.\r\nLN10 = new Decimal(LN10);\r\nPI = new Decimal(PI);\r\n\r\n/* harmony default export */ __webpack_exports__[\"Z\"] = (Decimal);\r\n\n\n/***/ })\n\n}]);"],"names":["self","push","__unused_webpack_module","__webpack_exports__","__webpack_require__","d","Portal","react__WEBPACK_IMPORTED_MODULE_0__","react_dom__WEBPACK_IMPORTED_MODULE_1__","_mui_utils__WEBPACK_IMPORTED_MODULE_3__","_mui_utils__WEBPACK_IMPORTED_MODULE_4__","_mui_utils__WEBPACK_IMPORTED_MODULE_5__","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__","forwardRef","props","forwardedRef","children","container","disablePortal","mountNode","setMountNode","useState","handleRef","Z","isValidElement","ref","getContainer","document","body","cloneElement","jsx","Fragment","createPortal","appendOwnerState","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__","_isHostComponent__WEBPACK_IMPORTED_MODULE_0__","elementType","otherProps","ownerState","undefined","X","extractEventHandlers","object","excludeKeys","result","Object","keys","filter","prop","match","includes","forEach","isHostComponent","element","mergeSlotProps","esm_extends","clsx","omitEventHandlers","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","className","joinedClasses","mergedStyle","style","length","internalRef","eventHandlers","_","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","resolveComponentProps","componentProps","slotState","useSlotProps","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__","_appendOwnerState__WEBPACK_IMPORTED_MODULE_5__","_mergeSlotProps__WEBPACK_IMPORTED_MODULE_2__","_resolveComponentProps__WEBPACK_IMPORTED_MODULE_1__","_excluded","_parameters$additiona","skipResolvingSlotProps","rest","resolvedComponentsProps","x","mergedProps","L","$","Backdrop_Backdrop","objectWithoutPropertiesLoose","react","composeClasses","styled","DefaultPropsProvider","Fade","generateUtilityClasses","generateUtilityClass","getBackdropUtilityClass","slot","ZP","jsx_runtime","useUtilityClasses","classes","invisible","root","BackdropRoot","name","styles","position","display","alignItems","justifyContent","right","bottom","top","left","backgroundColor","WebkitTapHighlightColor","Backdrop","inProps","_slotProps$root","_ref","_slots$root","i","component","components","componentsProps","open","slotProps","slots","TransitionComponent","transitionDuration","other","rootSlotProps","in","timeout","as","Root","Box_Box","styled_engine","styleFunctionSx","extendSxProp","useTheme","ClassNameGenerator","createTheme","identifier","boxClasses","defaultTheme","Box","createBox","options","themeId","defaultClassName","generateClassName","BoxRoot","shouldForwardProp","theme","_extendSxProp","Box_boxClasses","generate","Button_Button","resolveProps","colorManipulator","rootShouldForwardProp","ButtonBase","capitalize","getButtonUtilityClass","buttonClasses","ButtonGroupContext","ButtonGroupButtonContext","color","disableElevation","fullWidth","size","variant","label","startIcon","endIcon","composedClasses","commonIconStyles","fontSize","ButtonRoot","colorInherit","_theme$palette$getCon","_theme$palette","inheritContainedBackgroundColor","palette","mode","grey","inheritContainedHoverBackgroundColor","A100","typography","button","minWidth","padding","borderRadius","vars","shape","transition","transitions","create","duration","short","textDecoration","text","primaryChannel","action","hoverOpacity","Fq","primary","mainChannel","main","border","Button","inheritContainedHoverBg","boxShadow","shadows","dark","Button_buttonClasses","focusVisible","disabled","disabledBackground","getContrastText","call","inheritContainedBg","contrastText","borderColor","pxToRem","width","ButtonStartIcon","marginRight","marginLeft","ButtonEndIcon","contextProps","useContext","buttonGroupButtonContextPositionClassName","resolvedProps","disableFocusRipple","endIconProp","focusVisibleClassName","startIconProp","type","jsxs","focusRipple","_t","_t2","_t3","_t4","ButtonBase_ButtonBase","useForkRef","useEventCallback","useIsFocusVisible","inheritsLoose","TransitionGroupContext","getChildMapping","mapFn","Children","map","c","child","key","getProp","values","obj","k","TransitionGroup","_React$Component","context","_this","handleExited","bind","_assertThisInitialized","e","state","contextValue","isMounting","firstRender","_proto","prototype","componentDidMount","mounted","setState","componentWillUnmount","getDerivedStateFromProps","nextProps","nextChildMapping","prevChildMapping","onExited","appear","enter","exit","mergeChildMappings","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","hasPrev","hasNext","prevChild","isLeaving","node","currentChildMapping","render","_this$props","Component","childFactory","createElement","Provider","value","propTypes","defaultProps","emotion_react_browser_esm","useTimeout","touchRippleClasses","enterKeyframe","F4","t","exitKeyframe","pulsateKeyframe","TouchRippleRoot","overflow","pointerEvents","zIndex","TouchRippleRipple","pulsate","rippleX","rippleY","rippleSize","inProp","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","childClassName","childLeaving","childPulsate","useEffect","timeoutId","setTimeout","clearTimeout","height","ButtonBase_touchRippleClasses","easing","easeInOut","shorter","TouchRipple","center","centerProp","ripples","setRipples","useRef","rippleCallback","current","ignoringMouseDown","startTimer","startTimerCommit","startCommit","useCallback","params","cb","oldRipples","start","event","fakeElement","rect","getBoundingClientRect","clientX","clientY","touches","Math","round","sqrt","sizeX","max","abs","clientWidth","sizeY","clientHeight","stop","clear","slice","useImperativeHandle","generateUtilityClass_generateUtilityClass","getButtonBaseUtilityClass","buttonBaseClasses","ButtonBase_excluded","ButtonBaseRoot","overridesResolver","boxSizing","outline","margin","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","ButtonBase_buttonBaseClasses","colorAdjust","centerRipple","disableRipple","disableTouchRipple","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","isFocusVisibleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","setFocusVisible","focus","mountedState","setMountedState","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","preventDefault","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","tagName","href","keydownRef","handleKeyDown","target","handleKeyUp","defaultPrevented","ComponentProp","to","buttonProps","role","enableTouchRipple","createContext","CircularProgress_CircularProgress","getCircularProgressUtilityClass","circularRotateKeyframe","circularDashKeyframe","disableShrink","svg","circle","CircularProgressRoot","iv","CircularProgressSVG","CircularProgressCircle","circleDisableShrink","stroke","strokeDasharray","strokeDashoffset","CircularProgress","thickness","circleStyle","rootStyle","rootProps","circumference","PI","SIZE","toFixed","transform","viewBox","cx","cy","r","fill","strokeWidth","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_8__","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_5__","clsx__WEBPACK_IMPORTED_MODULE_9__","_mui_utils_composeClasses__WEBPACK_IMPORTED_MODULE_2__","_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_6__","_styles_styled__WEBPACK_IMPORTED_MODULE_4__","_DefaultPropsProvider__WEBPACK_IMPORTED_MODULE_7__","_dividerClasses__WEBPACK_IMPORTED_MODULE_3__","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","absolute","flexItem","light","orientation","textAlign","wrapper","V","DividerRoot","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","flexShrink","borderWidth","divider","borderBottomWidth","dividerChannel","spacing","marginTop","marginBottom","borderRightWidth","alignSelf","whiteSpace","content","borderTop","flexDirection","borderLeft","DividerWrapper","wrapperVertical","paddingLeft","paddingRight","paddingTop","paddingBottom","Divider","muiSkipListHighlight","getDividerUtilityClass","_mui_utils_generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__","_mui_utils_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__","dividerClasses","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_7__","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_4__","react_transition_group__WEBPACK_IMPORTED_MODULE_3__","_styles_useTheme__WEBPACK_IMPORTED_MODULE_2__","_transitions_utils__WEBPACK_IMPORTED_MODULE_6__","_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__","entering","opacity","entered","defaultTimeout","enteringScreen","leavingScreen","addEndListener","onEnter","onEntered","onEntering","onExit","onExiting","nodeRef","normalizedTransitionCallback","callback","maybeIsAppearing","handleEntering","handleEnter","isAppearing","n","transitionProps","C","webkitTransition","handleEntered","handleExiting","handleExit","handleAddEndListener","childProps","visibility","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_8__","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_3__","_mui_utils_useTimeout__WEBPACK_IMPORTED_MODULE_4__","react_transition_group__WEBPACK_IMPORTED_MODULE_2__","_styles_useTheme__WEBPACK_IMPORTED_MODULE_5__","_transitions_utils__WEBPACK_IMPORTED_MODULE_7__","_utils_useForkRef__WEBPACK_IMPORTED_MODULE_6__","getScale","isWebKit154","navigator","test","userAgent","Grow","timer","autoTimeout","delay","transitionTimingFunction","getAutoHeightDuration","join","muiSupportAuto","Link_Link","Typography","getLinkUtilityClass","linkClasses","colorTransformations","textPrimary","secondary","textSecondary","error","transformDeprecatedColors","getTextDecoration","transformedColor","DW","channelColor","underline","LinkRoot","textDecorationColor","Link_getTextDecoration","Link_linkClasses","Link","TypographyClasses","sx","handlerRef","Array","isArray","ListContext","getListItemIconUtilityClass","listItemIconClasses","Menu_Menu","RtlProvider","ownerDocument","getListUtilityClass","disablePadding","dense","subheader","ListRoot","listStyle","List","useMemo","utils_getScrollbarSize","getScrollbarSize","useEnhancedEffect","MenuList_excluded","nextItem","list","item","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","textContent","trim","toLowerCase","repeating","indexOf","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","getAttribute","hasAttribute","MenuList","actions","autoFocus","autoFocusItem","listRef","textCriteriaRef","previousKeyMatched","lastTime","containerElement","direction","noExplicitWidth","scrollbarSize","activeElement","criteria","lowerKey","currTime","performance","now","keepFocusOnCurrent","activeItemIndex","index","selected","items","newChildProps","debounce","ownerWindow","Modal","Paper","getPopoverUtilityClass","Popover_excluded","_excluded2","_excluded3","getOffsetTop","offset","getOffsetLeft","horizontal","getTransformOriginValue","transformOrigin","resolveAnchorEl","anchorEl","Popover_useUtilityClasses","paper","PopoverRoot","PopoverPaper","overflowY","overflowX","minHeight","maxWidth","maxHeight","Popover","_slotProps$paper","_slots$paper","anchorOrigin","anchorPosition","anchorReference","containerProp","elevation","marginThreshold","PaperProps","PaperPropsProp","transitionDurationProp","TransitionProps","disableScrollLock","externalPaperSlotProps","paperRef","handlePaperRef","getAnchorOffset","resolvedAnchorEl","anchorElement","nodeType","anchorRect","getTransformOrigin","elemRect","getPositioningStyle","offsetWidth","offsetHeight","elemTransformOrigin","anchorOffset","containerWindow","heightThreshold","innerHeight","widthThreshold","innerWidth","diff","isPositioned","setIsPositioned","setPositioningStyles","positioning","window","addEventListener","removeEventListener","handleResize","RootSlot","PaperSlot","paperProps","y","_useSlotProps","backdrop","rootSlotPropsProp","getMenuUtilityClass","Menu_excluded","Menu_excluded2","RTL_ORIGIN","LTR_ORIGIN","Menu_useUtilityClasses","MenuRoot","MenuPaper","WebkitOverflowScrolling","MenuMenuList","Menu","disableAutoFocusItem","MenuListProps","onClose","PopoverClasses","isRtl","menuListActionsRef","adjustStyleForScrollbar","handleListKeyDown","paperExternalSlotProps","paperSlotProps","MenuItem_MenuItem","listItemTextClasses","getMenuItemUtilityClass","menuItemClasses","disableGutters","gutters","MenuItemRoot","body1","borderBottom","backgroundClip","hover","MenuItem_menuItemClasses","selectedOpacity","focusOpacity","disabledOpacity","inset","ListItemText_listItemTextClasses","breakpoints","up","body2","MenuItem","tabIndexProp","childContext","menuItemRef","Modal_Modal","createChainedFunction","ariaHidden","show","setAttribute","removeAttribute","getPaddingRight","parseInt","getComputedStyle","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","blacklist","isNotExcludedElement","isNotForbiddenElement","isAriaHiddenForbiddenOnElement","isForbiddenTagName","forbiddenTagNames","isInputHidden","findIndexOf","idx","some","defaultManager","constructor","containers","modals","add","modal","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","restore","containerInfo","handleContainer","restoreStyle","scrollContainer","isOverflowing","doc","documentElement","scrollHeight","property","el","fixedElements","querySelectorAll","parentNode","DocumentFragment","parent","parentElement","nodeName","setProperty","removeProperty","remove","ariaHiddenState","splice","nextTop","isTopModal","defaultGetTabbable","regularTabNodes","orderedTabNodes","from","nodeTabIndex","getTabIndex","tabindexAttr","isNaN","contentEditable","isNonTabbableRadio","getRadio","selector","querySelector","roving","documentOrder","sort","a","b","concat","defaultIsEnabled","FocusTrap","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","contains","loopFocus","nativeEvent","shiftKey","contain","rootElement","hasFocus","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","Boolean","focusNext","focusPrevious","interval","setInterval","clearInterval","relatedTarget","childrenPropsHandler","handleFocusSentinel","getModalUtilityClass","exited","ModalRoot","hidden","ModalBackdrop","_ref2","_slots$backdrop","_slotProps$backdrop","BackdropComponent","BackdropProps","closeAfterTransition","disableEscapeKeyDown","hideBackdrop","keepMounted","onBackdropClick","propsWithDefaults","getRootProps","getBackdropProps","getTransitionProps","portalRef","hasTransition","useModal","manager","onTransitionEnter","onTransitionExited","mountNodeRef","setExited","hasOwnProperty","ariaHiddenProp","getDoc","getModal","handleMounted","scrollTop","handleOpen","resolvedContainer","handlePortalRef","handleClose","createHandleKeyDown","otherHandlers","_otherHandlers$onKeyD","which","stopPropagation","createHandleBackdropClick","_otherHandlers$onClic","propsEventHandlers","externalEventHandlers","BackdropSlot","backdropSlotProps","backdropProps","h","Paper_Paper","getOverlayAlpha","alphaValue","log","getPaperUtilityClass","square","PaperRoot","rounded","_theme$vars$overlays","background","backgroundImage","styles_getOverlayAlpha","overlays","Stack_Stack","deepmerge","useThemeProps","defaultCreateStyledComponent","useThemePropsDefault","getSideFromDirection","row","column","k9","P$","propValue","transformer","hB","base","reduce","acc","breakpoint","directionValues","spacingValues","directionValue","previousDirectionValue","styleFromPropValue","useFlexGap","gap","NA","dt","styles_styled","Stack","createStack","createStyledComponent","componentName","StackRoot","themeProps","joinChildren","separator","childrenArray","toArray","output","Tooltip_Tooltip","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","getWindow","toString","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","math_max","math_min","min","getUAString","uaData","userAgentData","brands","brand","version","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetLeft","offsetTop","getWindowScroll","win","scrollLeft","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getLayoutRect","getParentNode","assignedSlot","host","listScrollParents","_element$ownerDocumen","scrollParent","getScrollParent","isBody","updatedList","getTrueOffsetParent","offsetParent","getOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","perspective","willChange","auto","basePlacements","viewport","popper","variationPlacements","placement","enums_placements","modifierPhases","DEFAULT_OPTIONS","modifiers","strategy","areValidElements","_len","arguments","args","_key","passive","getBasePlacement","split","getVariation","getMainAxisFromPlacement","computeOffsets","offsets","reference","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","dpr","_Object$assign2","_Object$assign","popperRect","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","assign","_ref4","devicePixelRatio","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement_hash","end","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","winScroll","getViewportRect","layoutViewport","clientTop","clientLeft","scrollWidth","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","boundary","clippingParents","clipperElement","firstClippingParent","clippingRect","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","rects","elements","clippingClientRect","contextElement","canEscapeClipping","accRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","popper_createPopper","enabled","phase","fn","effect","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","update","data","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","attributes","initialStyles","styleProperties","attribute","requires","_options$offset","invertDistance","skidding","distance","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","placements","isBasePlacement","getExpandedFallbackPlacements","oppositePlacement","_options$allowedAutoP","allowedPlacements","overflows","referenceRect","checksMap","Map","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","set","numberOfChecks","_loop","_i","fittingPlacement","find","get","_ret","reset","requiresIfExists","_options$tether","tether","_options$tetherOffset","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","preventedOffset","_offsetModifierState$2","v","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","_state$modifiersData$","endDiff","startDiff","clientSize","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","merged","visited","cleanupModifierEffects","existing","Set","modifier","has","dep","depModifier","m","_ref$options","cleanupFn","forceUpdate","isOffsetParentAnElement","offsetParentIsScaled","_state$elements","_state$orderedModifie","_state$orderedModifie2","Promise","resolve","then","destroy","onFirstUpdate","GLOBAL_CLASS_PREFIX","globalStateClass","_v","COMPONENT_NAME","getPopperUtilityClass","ClassNameConfiguratorContext","disableDefaultClasses","useClassNamesOverride","defaultPopperOptions","PopperTooltip","initialPlacement","popperOptions","popperRef","popperRefProp","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","rtlPlacement","flipPlacement","setPlacement","resolvedAnchorElement","setResolvedAnchorElement","handlePopperUpdate","popperModifiers","Popper","useThemeWithoutDefault","Popper_excluded","PopperRoot","Popper_Popper","RootComponent","utils_useForkRef","useId","useControlled","tooltipClasses","Tooltip_excluded","Tooltip_useUtilityClasses","disableInteractive","touch","tooltip","Q","TooltipPopper","popperInteractive","popperArrow","popperClose","TooltipTooltip","tooltipArrow","Tooltip","bg","common","white","fontFamily","wordWrap","fontWeight","fontWeightMedium","lineHeight","fontWeightRegular","TooltipArrow","hystersisOpen","hystersisTimer","cursorPosition","composeEventHandler","handler","eventHandler","_slots$popper","_slots$transition","_slots$tooltip","_slots$arrow","_slotProps$popper","_ref6","_slotProps$popper2","_slotProps$transition","_slotProps$tooltip","_ref7","_slotProps$tooltip2","_slotProps$arrow","_ref8","_slotProps$arrow2","childrenProp","describeChild","disableFocusListener","disableHoverListener","disableInteractiveProp","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","id","idProp","leaveDelay","leaveTouchDelay","onOpen","openProp","PopperComponent","PopperComponentProp","PopperProps","title","TransitionComponentProp","childNode","setChildNode","arrowRef","setArrowRef","ignoreNonTouchEvents","closeTimer","enterTimer","leaveTimer","touchTimer","openState","setOpenState","controlled","default","prevUserSelect","stopTouchInteraction","WebkitUserSelect","shortest","handleMouseOver","setChildIsFocusVisible","detectTouchStart","childrenProps","handleMouseMove","onMouseMove","nameOrDescProps","titleIsString","interactiveWrapperListeners","onMouseOver","_PopperProps$popperOp","tooltipModifiers","Transition","TooltipComponent","ArrowComponent","Arrow","popperProps","tooltipProps","tooltipArrowProps","TransitionPropsInner","getTooltipUtilityClass","Typography_Typography","getTypographyUtilityClass","align","gutterBottom","noWrap","paragraph","TypographyRoot","font","textOverflow","defaultVariantMapping","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","inherit","variantMapping","_slotShouldForwardProp__WEBPACK_IMPORTED_MODULE_0__","_mui_system_createStyled__WEBPACK_IMPORTED_MODULE_0__","_defaultTheme__WEBPACK_IMPORTED_MODULE_2__","_identifier__WEBPACK_IMPORTED_MODULE_1__","_rootShouldForwardProp__WEBPACK_IMPORTED_MODULE_3__","_mui_system__WEBPACK_IMPORTED_MODULE_1__","_identifier__WEBPACK_IMPORTED_MODULE_3__","reflow","_style$transitionDura","_style$transitionTimi","transitionDelay","_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__","createSvgIcon","getSvgIconUtilityClass","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette2","_palette3","hasSvgAsChild","small","medium","large","active","SvgIcon","htmlColor","inheritViewBox","titleAccess","instanceFontSize","more","focusable","path","displayName","muiName","SvgIcon_SvgIcon","memo","_mui_utils_debounce__WEBPACK_IMPORTED_MODULE_0__","_mui_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_0__","_mui_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_0__","utils_useControlled","defaultProp","isControlled","valueState","setValue","setValueIfUncontrolled","newValue","_mui_utils_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_0__","_mui_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_0__","_mui_utils_useForkRef__WEBPACK_IMPORTED_MODULE_0__","_mui_utils_useId__WEBPACK_IMPORTED_MODULE_0__","utils_useIsFocusVisible","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","url","tel","email","password","number","date","month","week","time","datetime","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","matches","focusTriggersKeyboardModality","readOnly","isContentEditable","cache","GlobalStyles","StyledEngineProvider","emotion_element_43c6fea0_browser_esm","T","internal_processStyles","emotion_memoize_esm","reactPropsRegex","isPropValid","charCodeAt","emotion_utils_browser_esm","emotion_serialize_browser_esm","emotion_use_insertion_effect_with_fallbacks_browser_esm","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","isReal","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","serialized","isStringTag","hC","My","newStyled","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","__emotion_styles","raw","apply","Styled","w","FinalTag","classInterpolations","fp","registered","O","finalShouldForwardProp","newProps","defineProperty","withComponent","nextTag","nextOptions","tags","emotion_cache_browser_esm","injectFirst","prepend","stylesFactory","processor","exports","_interopRequireDefault","input","systemDefaultTheme","slotShouldForwardProp","systemSx","_styleFunctionSx","_extends2","resolveTheme","__mui_systemSx","inputOptions","_styledEngine","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","lowercaseFirstLetter","_objectWithoutPropertiesLoose2","shouldForwardPropOption","defaultStyledResolver","transformStyleArg","stylesArg","_deepmerge","isPlainObject","processStyleArg","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","styleOverrides","resolvedStyleOverrides","entries","slotKey","slotStyle","_theme$components","themeVariants","variants","numOfCustomFnsApplied","placeholders","withConfig","_interopRequireWildcard","__esModule","_getRequireWildcardCache","__proto__","getOwnPropertyDescriptor","u","_createTheme","WeakMap","string","charAt","isEmpty","callableStyle","resolvedStylesArg","flatMap","resolvedStyle","otherStyles","isMatch","_createTheme__WEBPACK_IMPORTED_MODULE_0__","_createBreakpoints__WEBPACK_IMPORTED_MODULE_1__","_applyStyles__WEBPACK_IMPORTED_MODULE_2__","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__","_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__","_defaultSxConfig__WEBPACK_IMPORTED_MODULE_0__","splitProps","_props$theme$unstable","_props$theme","systemProps","config","unstable_sxConfig","finalSx","inSx","P","_styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__","_extendSxProp__WEBPACK_IMPORTED_MODULE_1__","_defaultSxConfig__WEBPACK_IMPORTED_MODULE_2__","esm_styled","useMediaQuery","react__WEBPACK_IMPORTED_MODULE_0___namespace_cache","_mui_utils_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__","_useThemeProps__WEBPACK_IMPORTED_MODULE_3__","_useThemeWithoutDefault__WEBPACK_IMPORTED_MODULE_2__","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","setMatch","queryList","updateMatch","addListener","removeListener","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","getSnapshot","subscribe","mediaQueryList","notify","queryInput","supportMatchMedia","useMediaQueryImplementation","getThemeProps","_mui_utils_resolveProps__WEBPACK_IMPORTED_MODULE_0__","_getThemeProps__WEBPACK_IMPORTED_MODULE_1__","_useTheme__WEBPACK_IMPORTED_MODULE_0__","React","contextTheme","ThemeContext","defaultGenerator","configure","generator","_capitalize__WEBPACK_IMPORTED_MODULE_0__","getUtilityClass","utilityClass","funcs","func","wait","debounced","later","_deepmerge__WEBPACK_IMPORTED_MODULE_0__","globalStateClasses","_ClassNameGenerator__WEBPACK_IMPORTED_MODULE_0__","checked","completed","expanded","focused","required","globalStatePrefix","_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__","getDisplayName","getFunctionName","react_is","fnNameMatchRegex","getFunctionComponentName","fallback","getWrappedName","outerType","innerType","wrapperName","functionName","$$typeof","ForwardRef","Memo","documentWidth","_ownerDocument__WEBPACK_IMPORTED_MODULE_0__","setRef","useLayoutEffect","_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__","_setRef__WEBPACK_IMPORTED_MODULE_1__","refs","globalId","maybeReactUseId","idOverride","reactId","useGlobalId","defaultId","setDefaultId","Timeout","UNINITIALIZED","EMPTY","currentId","disposeEffect","useLazyRef","init","initArg","module","getDomainLocale","locale","locales","domainLocales","_extends","_interop_require_default","_interop_require_wildcard","_object_without_properties_loose","_react","_head","_imageBlurSvg","_imageConfig","_imageConfigContext","_imageLoader","configEnv","isStaticRequire","src","getInt","NaN","handleLoading","img","onLoadRef","onLoadingCompleteRef","unoptimized","p","decode","catch","Event","writable","prevented","stopped","isDefaultPrevented","isPropagationStopped","ImageElement","_param","imgAttributes","heightInt","widthInt","qualityInt","imgStyle","blurStyle","isLazy","placeholder","loading","srcString","loader","onLoad","onError","decoding","complete","backgroundSize","backgroundPosition","backgroundRepeat","Image","blurWidth","blurHeight","sizes","priority","quality","onLoadingComplete","blurDataURL","layout","objectFit","objectPosition","lazyBoundary","lazyRoot","all","configContext","ImageConfigContext","imageConfigDefault","allSizes","deviceSizes","imageSizes","customImageLoader","opts","layoutStyle","layoutToStyle","intrinsic","responsive","layoutSizes","layoutToSizes","staticSrc","staticImageData","JSON","stringify","ratio","ratio1","startsWith","getImageBlurSvg","generateImgAttrs","param","srcSet","widths","kind","getWidths","viewportWidthRe","percentSizes","exec","smallestRatio","s","last","linkProps","imageSrcSet","crossOrigin","imgElementArgs","rel","_router","_formatUrl","_addLocale","_routerContext","_appRouterContext","_useIntersection","_getDomainLocale","_addBasePath","prefetched","prefetch","router","isLocalURL","bypassPrefetchedCheck","prefetchedKey","formatStringOrUrl","urlObjOrString","formatUrl","hrefProp","asProp","prefetchProp","passHref","shallow","onMouseEnter","onMouseEnterProp","onTouchStartProp","legacyBehavior","restProps","prefetchEnabled","pagesRouter","RouterContext","appRouter","AppRouterContext","isAppRouter","href1","resolvedHref","resolvedHref1","resolvedAs","resolveHref","previousHref","previousAs","only","childRef","setIntersectionRef","isVisible","resetVisible","useIntersection","rootMargin","linkClicked","isAnchorNodeName","toUpperCase","isModifiedEvent","navigate","forceOptimisticNavigation","startTransition","curLocale","localeDomain","isLocaleDomain","addBasePath","addLocale","defaultLocale","isDisabled","hasIntersectionObserver","visible","setVisible","setElement","unobserve","observe","observer","createObserver","idList","observers","IntersectionObserver","entry","isIntersecting","intersectionRatio","delete","disconnect","findIndex","idleCallback","requestIdleCallback","cancelIdleCallback","_requestIdleCallback","svgWidth","svgHeight","feComponentTransfer","defaultLoader","endsWith","dangerouslyAllowSVG","encodeURIComponent","__next_img_default","__unused_webpack_exports","Symbol","for","l","esm_Transition","react_dom","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","initialStatus","parentGroup","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","prevState","updateStatus","componentDidUpdate","prevProps","nextStatus","cancelNextCallback","getTimeouts","mounting","findDOMNode","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","cancel","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","maybeNextCallback","noop","contextType","__unused_webpack___webpack_module__","_typeof","o","iterator","_defineProperty","toPrimitive","String","Number","enumerable","configurable","_taggedTemplateLiteral","strings","freeze","defineProperties","isNumeric","mathceil","ceil","mathfloor","floor","bignumberError","tooManyDigits","POWS_TEN","bitFloor","coeffToString","z","j","LOG_BASE","compare","xc","yc","intCheck","Error","isOdd","toExponential","str","toFixedPoint","zs","BigNumber","clone","configObject","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","div","convertBase","parseNumeric","valueOf","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","prefix","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","alphabet","caseChanged","isNum","_isBigNumber","substring","DEBUG","format","rm","c0","ne","maxOrMin","normalise","pop","sd","ni","rd","out","pows10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","random","dp","rand","Uint32Array","copy","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","arr","reverse","sign","callerIsToString","pow","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","subtract","prod","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","p1","p2","absoluteValue","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","isInteger","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","gt","isGreaterThanOrEqualTo","gte","isLessThan","lt","isLessThanOrEqualTo","lte","isNegative","isPositive","isZero","minus","xLTy","xe","ye","BASE","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","negated","precision","shiftedBy","squareRoot","rep","toFormat","g1","g2","intPart","fractionPart","isNeg","intDigits","substr","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","toJSON","toStringTag","inexact","quadrant","NUMERALS","LN10","DEFAULTS","rounding","toExpNeg","toExpPos","minE","maxE","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathpow","isBinary","isHex","isOctal","isDecimal","LN10_PRECISION","PI_PRECISION","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","di","strL","finalise","clampedTo","clamp","Ctor","xdL","ydL","xd","yd","xs","ys","cosine","cos","pr","tinyPow","taylorSeries","cos2x","toLessThanHalfPi","neg","cubeRoot","cbrt","t3","t3plusx","divide","divToInt","equals","greaterThan","greaterThanOrEqualTo","hyperbolicCosine","cosh","one","cosh2_x","d8","hyperbolicSine","sinh","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","halfPi","getPi","asin","inverseHyperbolicCosine","acosh","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","atan","inverseTangent","px","x2","isInt","isPos","lessThan","lessThanOrEqualTo","logarithm","isBase10","inf","num","arg","naturalLogarithm","getLn10","sub","shift","getBase10Exponent","naturalExponential","unshift","getPrecision","sine","sin","sin2_x","tangent","tan","mul","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","maxD","toHexadecimal","toHex","toNearest","toOctal","toPower","yn","intPow","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","logBase","qd","yd0","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","truncate","ltgt","denominator","guard","numerator","x1","parseDecimal","isHyperbolic","pi","atan2","useDefaults","defaults","ps","hypot","isDecimalInstance","Decimal","log2","log10","parseOther","divisor","isFloat"],"sourceRoot":""}